import 'dart:async'; import 'package:flutter/foundation.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:intl/intl.dart' as intl; import 'app_localizations_de.dart'; import 'app_localizations_en.dart'; // ignore_for_file: type=lint /// Callers can lookup localized strings with an instance of AppLocalizations /// returned by `AppLocalizations.of(context)`. /// /// Applications need to include `AppLocalizations.delegate()` in their app's /// `localizationDelegates` list, and the locales they support in the app's /// `supportedLocales` list. For example: /// /// ```dart /// import 'l10n/app_localizations.dart'; /// /// return MaterialApp( /// localizationsDelegates: AppLocalizations.localizationsDelegates, /// supportedLocales: AppLocalizations.supportedLocales, /// home: MyApplicationHome(), /// ); /// ``` /// /// ## Update pubspec.yaml /// /// Please make sure to update your pubspec.yaml to include the following /// packages: /// /// ```yaml /// dependencies: /// # Internationalization support. /// flutter_localizations: /// sdk: flutter /// intl: any # Use the pinned version from flutter_localizations /// /// # Rest of dependencies /// ``` /// /// ## iOS Applications /// /// iOS applications define key application metadata, including supported /// locales, in an Info.plist file that is built into the application bundle. /// To configure the locales supported by your app, you’ll need to edit this /// file. /// /// First, open your project’s ios/Runner.xcworkspace Xcode workspace file. /// Then, in the Project Navigator, open the Info.plist file under the Runner /// project’s Runner folder. /// /// Next, select the Information Property List item, select Add Item from the /// Editor menu, then select Localizations from the pop-up menu. /// /// Select and expand the newly-created Localizations item then, for each /// locale your application supports, add a new item and select the locale /// you wish to add from the pop-up menu in the Value field. This list should /// be consistent with the languages listed in the AppLocalizations.supportedLocales /// property. abstract class AppLocalizations { AppLocalizations(String locale) : localeName = intl.Intl.canonicalizedLocale(locale.toString()); final String localeName; static AppLocalizations? of(BuildContext context) { return Localizations.of(context, AppLocalizations); } static const LocalizationsDelegate delegate = _AppLocalizationsDelegate(); /// A list of this localizations delegate along with the default localizations /// delegates. /// /// Returns a list of localizations delegates containing this delegate along with /// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, /// and GlobalWidgetsLocalizations.delegate. /// /// Additional delegates can be added by appending to this list in /// MaterialApp. This list does not have to be used at all if a custom list /// of delegates is preferred or required. static const List> localizationsDelegates = >[ delegate, GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, GlobalWidgetsLocalizations.delegate, ]; /// A list of this localizations delegate's supported locales. static const List supportedLocales = [ Locale('de'), Locale('en'), ]; /// App-bar title in the OS task switcher. /// /// In en, this message translates to: /// **'Ch∆In Studio'** String get appTitle; /// No description provided for @navWelcome. /// /// In en, this message translates to: /// **'Welcome'** String get navWelcome; /// No description provided for @welcomeHeroTitle. /// /// In en, this message translates to: /// **'Ch∆In Platform'** String get welcomeHeroTitle; /// No description provided for @welcomeHeroSubtitle. /// /// In en, this message translates to: /// **'Deterministic workflow engine for AI-assisted document processing in regulated environments.'** String get welcomeHeroSubtitle; /// No description provided for @welcomePillarHubTitle. /// /// In en, this message translates to: /// **'Hub'** String get welcomePillarHubTitle; /// No description provided for @welcomePillarHubBody. /// /// In en, this message translates to: /// **'One Rust binary that loads modules and runs flows. SQLite for state. No Docker, no message broker, no background services to babysit.'** String get welcomePillarHubBody; /// No description provided for @welcomePillarModuleTitle. /// /// In en, this message translates to: /// **'Module'** String get welcomePillarModuleTitle; /// No description provided for @welcomePillarModuleBody. /// /// In en, this message translates to: /// **'A small WebAssembly component that does one thing. Declares the network endpoints, files, and environment variables it touches; the hub enforces the list.'** String get welcomePillarModuleBody; /// No description provided for @welcomePillarFlowTitle. /// /// In en, this message translates to: /// **'Flow'** String get welcomePillarFlowTitle; /// No description provided for @welcomePillarFlowBody. /// /// In en, this message translates to: /// **'A YAML file that chains modules together. Inputs go in, modules run in declared order, outputs come out — every step recorded in a hash-chained audit log.'** String get welcomePillarFlowBody; /// No description provided for @welcomeTrustHeader. /// /// In en, this message translates to: /// **'TRUST POSTURE'** String get welcomeTrustHeader; /// No description provided for @welcomeTrustSandboxTitle. /// /// In en, this message translates to: /// **'Sandbox by default'** String get welcomeTrustSandboxTitle; /// No description provided for @welcomeTrustSandboxBody. /// /// In en, this message translates to: /// **'Every module ships with an explicit permission list — network endpoints, files, environment variables. The hub enforces it; nothing reaches outside the sandbox without operator approval.'** String get welcomeTrustSandboxBody; /// No description provided for @welcomeTrustAuditTitle. /// /// In en, this message translates to: /// **'Tamper-evident audit log'** String get welcomeTrustAuditTitle; /// No description provided for @welcomeTrustAuditBody. /// /// In en, this message translates to: /// **'Flow runs, install / uninstall actions, approval decisions — all of them write into a hash-chained audit log. The Doctor page verifies the chain end-to-end on every load.'** String get welcomeTrustAuditBody; /// No description provided for @welcomeTrustAirgapTitle. /// /// In en, this message translates to: /// **'Air-gap ready'** String get welcomeTrustAirgapTitle; /// No description provided for @welcomeTrustAirgapBody. /// /// In en, this message translates to: /// **'The whole hub fits in a single binary that runs on Linux, macOS and Windows. Once a module is installed, the flow it powers runs without further network access — perfect for regulated environments.'** String get welcomeTrustAirgapBody; /// No description provided for @welcomeDocsHeader. /// /// In en, this message translates to: /// **'DOCUMENTATION'** String get welcomeDocsHeader; /// No description provided for @welcomeDocsBody. /// /// In en, this message translates to: /// **'Operator-facing explainers, rendered inline. No browser, no external link — air-gap-friendly.'** String get welcomeDocsBody; /// No description provided for @welcomeDocArchitectureTitle. /// /// In en, this message translates to: /// **'Architecture in one paragraph'** String get welcomeDocArchitectureTitle; /// No description provided for @welcomeDocArchitectureBlurb. /// /// In en, this message translates to: /// **'Hub, Module, Flow — and how the three fit together.'** String get welcomeDocArchitectureBlurb; /// No description provided for @welcomeDocSecurityTitle. /// /// In en, this message translates to: /// **'Sandbox model'** String get welcomeDocSecurityTitle; /// No description provided for @welcomeDocSecurityBlurb. /// /// In en, this message translates to: /// **'What a module declares, what the operator caps, what the hub enforces.'** String get welcomeDocSecurityBlurb; /// No description provided for @welcomeDocAuditTitle. /// /// In en, this message translates to: /// **'Tamper-evident audit log'** String get welcomeDocAuditTitle; /// No description provided for @welcomeDocAuditBlurb. /// /// In en, this message translates to: /// **'How the hash chain works and why WORM-1 is enough for KRITIS.'** String get welcomeDocAuditBlurb; /// No description provided for @welcomeDocFlowsTitle. /// /// In en, this message translates to: /// **'Flow composition'** String get welcomeDocFlowsTitle; /// No description provided for @welcomeDocFlowsBlurb. /// /// In en, this message translates to: /// **'YAML basics, templating reference, the extract→summarize example.'** String get welcomeDocFlowsBlurb; /// No description provided for @welcomeDocApprovalsTitle. /// /// In en, this message translates to: /// **'Approvals'** String get welcomeDocApprovalsTitle; /// No description provided for @welcomeDocApprovalsBlurb. /// /// In en, this message translates to: /// **'Human-in-the-loop checkpoints — when to use them, how the audit log records them.'** String get welcomeDocApprovalsBlurb; /// No description provided for @helpTooltip. /// /// In en, this message translates to: /// **'Help'** String get helpTooltip; /// No description provided for @errApprovalRejected. /// /// In en, this message translates to: /// **'Approval rejected by reviewer.'** String get errApprovalRejected; /// No description provided for @errApprovalRejectedHint. /// /// In en, this message translates to: /// **'The reviewer marked this step as rejected. Check the audit log for the reviewer\'s reason.'** String get errApprovalRejectedHint; /// No description provided for @errApprovalTimedOut. /// /// In en, this message translates to: /// **'Approval timed out.'** String get errApprovalTimedOut; /// No description provided for @errApprovalTimedOutHint. /// /// In en, this message translates to: /// **'No reviewer decided within the configured time. Raise `timeout_seconds` on the approval step or alert the reviewer.'** String get errApprovalTimedOutHint; /// No description provided for @errOutputTooLarge. /// /// In en, this message translates to: /// **'Step output exceeded the size limit.'** String get errOutputTooLarge; /// No description provided for @errOutputTooLargeHint. /// /// In en, this message translates to: /// **'Either trim the output (truncate text, downsample bytes) or raise `max_output_size_mb` in the operator config.'** String get errOutputTooLargeHint; /// No description provided for @errServiceUnavailableForStep. /// /// In en, this message translates to: /// **'Host service not configured.'** String get errServiceUnavailableForStep; /// No description provided for @errServiceUnavailableForStepHint. /// /// In en, this message translates to: /// **'The module requires a service (e.g. ollama, playwright) the operator hasn\'t declared. Add it under `services:` in ~/.chain/config.yaml.'** String get errServiceUnavailableForStepHint; /// No description provided for @errMissingValue. /// /// In en, this message translates to: /// **'Required value is missing.'** String get errMissingValue; /// No description provided for @errMissingValueHint. /// /// In en, this message translates to: /// **'The step expected an input that wasn\'t wired up — either supply it at run time or fix the upstream `\$ref`.'** String get errMissingValueHint; /// No description provided for @errMcpUnreachable. /// /// In en, this message translates to: /// **'MCP endpoint unreachable.'** String get errMcpUnreachable; /// No description provided for @errMcpUnreachableHint. /// /// In en, this message translates to: /// **'The MCP server didn\'t respond. Check the endpoint in Settings → Integrations and confirm it\'s running.'** String get errMcpUnreachableHint; /// No description provided for @errCapabilityNotInstalled. /// /// In en, this message translates to: /// **'Required capability is not installed.'** String get errCapabilityNotInstalled; /// No description provided for @errCapabilityNotInstalledHint. /// /// In en, this message translates to: /// **'Open the flow\'s Text tab — the analyzer\'s Fix button installs the capability if it\'s in the store.'** String get errCapabilityNotInstalledHint; /// No description provided for @welcomeDocClose. /// /// In en, this message translates to: /// **'Close'** String get welcomeDocClose; /// No description provided for @welcomeDocFailedToLoad. /// /// In en, this message translates to: /// **'Could not load documentation: {error}'** String welcomeDocFailedToLoad(String error); /// No description provided for @welcomeChecklistHeader. /// /// In en, this message translates to: /// **'GETTING STARTED'** String get welcomeChecklistHeader; /// No description provided for @welcomeChecklistBody. /// /// In en, this message translates to: /// **'Four steps to a working hub. Live state — refresh after changing anything.'** String get welcomeChecklistBody; /// No description provided for @welcomeChecklistAi. /// /// In en, this message translates to: /// **'Configure System AI'** String get welcomeChecklistAi; /// No description provided for @welcomeChecklistAiHint. /// /// In en, this message translates to: /// **'Settings → System AI. Required for the AI search and inline failure explanations.'** String get welcomeChecklistAiHint; /// No description provided for @welcomeChecklistMcp. /// /// In en, this message translates to: /// **'Add a public capability source'** String get welcomeChecklistMcp; /// No description provided for @welcomeChecklistMcpHint. /// /// In en, this message translates to: /// **'Add an MCP source from the Store, or configure one under Settings → MCP Clients.'** String get welcomeChecklistMcpHint; /// No description provided for @welcomeChecklistModule. /// /// In en, this message translates to: /// **'Install a text module'** String get welcomeChecklistModule; /// No description provided for @welcomeChecklistModuleHint. /// /// In en, this message translates to: /// **'Install a module from the Store — pick whichever category fits your work. Modules are sandboxed Ch∆In components.'** String get welcomeChecklistModuleHint; /// No description provided for @welcomeChecklistFlow. /// /// In en, this message translates to: /// **'Run a saved flow'** String get welcomeChecklistFlow; /// No description provided for @welcomeChecklistFlowHint. /// /// In en, this message translates to: /// **'Flows → pick one → Run. Studio ships a few demo flows; one of your own works too.'** String get welcomeChecklistFlowHint; /// No description provided for @welcomeChecklistAllDone. /// /// In en, this message translates to: /// **'All four steps complete.'** String get welcomeChecklistAllDone; /// No description provided for @welcomeChecklistDismiss. /// /// In en, this message translates to: /// **'Hide checklist'** String get welcomeChecklistDismiss; /// No description provided for @welcomeChecklistRefresh. /// /// In en, this message translates to: /// **'Refresh'** String get welcomeChecklistRefresh; /// No description provided for @welcomeChecklistRefreshing. /// /// In en, this message translates to: /// **'Checking…'** String get welcomeChecklistRefreshing; /// No description provided for @welcomeChecklistDone. /// /// In en, this message translates to: /// **'Done'** String get welcomeChecklistDone; /// No description provided for @welcomeChecklistTodo. /// /// In en, this message translates to: /// **'Pending'** String get welcomeChecklistTodo; /// No description provided for @navDoctor. /// /// In en, this message translates to: /// **'Doctor'** String get navDoctor; /// No description provided for @navModules. /// /// In en, this message translates to: /// **'Modules'** String get navModules; /// No description provided for @navStore. /// /// In en, this message translates to: /// **'Store'** String get navStore; /// No description provided for @navFlows. /// /// In en, this message translates to: /// **'Flows'** String get navFlows; /// No description provided for @navAudit. /// /// In en, this message translates to: /// **'Audit'** String get navAudit; /// No description provided for @navApprovals. /// /// In en, this message translates to: /// **'Approvals'** String get navApprovals; /// No description provided for @connectionConnected. /// /// In en, this message translates to: /// **'connected'** String get connectionConnected; /// No description provided for @connectionUnreachable. /// /// In en, this message translates to: /// **'unreachable'** String get connectionUnreachable; /// No description provided for @connectionConnecting. /// /// In en, this message translates to: /// **'connecting…'** String get connectionConnecting; /// No description provided for @connectionStartHub. /// /// In en, this message translates to: /// **'Start hub'** String get connectionStartHub; /// No description provided for @connectionTapToStart. /// /// In en, this message translates to: /// **'tap to start'** String get connectionTapToStart; /// No description provided for @sidebarSettingsTooltip. /// /// In en, this message translates to: /// **'Settings (⌘;)'** String get sidebarSettingsTooltip; /// No description provided for @sidebarChannelTooltip. /// /// In en, this message translates to: /// **'Active channel — click to switch in Settings (⌘;).\nproduction = stable · beta = pre-release · dev = rolling · local = workspace'** String get sidebarChannelTooltip; /// No description provided for @buttonCancel. /// /// In en, this message translates to: /// **'Cancel'** String get buttonCancel; /// No description provided for @buttonSave. /// /// In en, this message translates to: /// **'Save'** String get buttonSave; /// No description provided for @buttonClose. /// /// In en, this message translates to: /// **'Close'** String get buttonClose; /// No description provided for @buttonRetry. /// /// In en, this message translates to: /// **'Retry'** String get buttonRetry; /// No description provided for @buttonRefresh. /// /// In en, this message translates to: /// **'Refresh'** String get buttonRefresh; /// No description provided for @buttonInstall. /// /// In en, this message translates to: /// **'Install'** String get buttonInstall; /// No description provided for @buttonUninstall. /// /// In en, this message translates to: /// **'Uninstall'** String get buttonUninstall; /// No description provided for @buttonDetails. /// /// In en, this message translates to: /// **'Details'** String get buttonDetails; /// No description provided for @buttonAdd. /// /// In en, this message translates to: /// **'Add'** String get buttonAdd; /// No description provided for @buttonRemove. /// /// In en, this message translates to: /// **'Remove'** String get buttonRemove; /// No description provided for @buttonOpen. /// /// In en, this message translates to: /// **'Open'** String get buttonOpen; /// No description provided for @buttonExplain. /// /// In en, this message translates to: /// **'Explain'** String get buttonExplain; /// No description provided for @buttonReadDocs. /// /// In en, this message translates to: /// **'Read docs'** String get buttonReadDocs; /// No description provided for @buttonCopy. /// /// In en, this message translates to: /// **'Copy to clipboard'** String get buttonCopy; /// No description provided for @buttonCopied. /// /// In en, this message translates to: /// **'Copied'** String get buttonCopied; /// No description provided for @buttonShowDetails. /// /// In en, this message translates to: /// **'Show details'** String get buttonShowDetails; /// No description provided for @buttonHideDetails. /// /// In en, this message translates to: /// **'Hide details'** String get buttonHideDetails; /// No description provided for @storeInstallableOnly. /// /// In en, this message translates to: /// **'Installable only'** String get storeInstallableOnly; /// No description provided for @storePillComingSoon. /// /// In en, this message translates to: /// **'Coming soon'** String get storePillComingSoon; /// No description provided for @storeNotInstallableInline. /// /// In en, this message translates to: /// **'This module is on the roadmap (status: {status}). It has no installable bundle yet — follow the repository for updates.'** String storeNotInstallableInline(String status); /// No description provided for @mcpSuggestionDeepwikiDesc. /// /// In en, this message translates to: /// **'Public HTTPS — GitHub repo documentation search (AI-powered). No Node, no API key.'** String get mcpSuggestionDeepwikiDesc; /// No description provided for @mcpSuggestionSemgrepDesc. /// /// In en, this message translates to: /// **'Public HTTPS — security scanning for code vulnerabilities. No Node, no API key.'** String get mcpSuggestionSemgrepDesc; /// No description provided for @mcpSuggestionFilesystemDesc. /// /// In en, this message translates to: /// **'Anthropic — read / write files in /tmp. Edit the path before saving.'** String get mcpSuggestionFilesystemDesc; /// No description provided for @mcpSuggestionFetchDesc. /// /// In en, this message translates to: /// **'Anthropic — fetch arbitrary HTTP(S) URLs as markdown.'** String get mcpSuggestionFetchDesc; /// No description provided for @mcpSuggestionGithubDesc. /// /// In en, this message translates to: /// **'Anthropic — issues, PRs, repo files. Needs a GitHub PAT in the env var.'** String get mcpSuggestionGithubDesc; /// No description provided for @mcpSuggestionPuppeteerDesc. /// /// In en, this message translates to: /// **'Anthropic — headless browser automation for screenshots / scraping.'** String get mcpSuggestionPuppeteerDesc; /// No description provided for @mcpSuggestionPostgresDesc. /// /// In en, this message translates to: /// **'Anthropic — read-only SQL queries against a Postgres database. Edit the URL.'** String get mcpSuggestionPostgresDesc; /// No description provided for @mcpSuggestionSqliteDesc. /// /// In en, this message translates to: /// **'Anthropic — query a local SQLite file. Edit the path.'** String get mcpSuggestionSqliteDesc; /// No description provided for @mcpSuggestionBraveSearchDesc. /// /// In en, this message translates to: /// **'Anthropic — web search via Brave. API key required.'** String get mcpSuggestionBraveSearchDesc; /// No description provided for @mcpSuggestionMemoryDesc. /// /// In en, this message translates to: /// **'Anthropic — persistent knowledge graph for an agent\'s memory.'** String get mcpSuggestionMemoryDesc; /// No description provided for @mcpSuggestionTimeDesc. /// /// In en, this message translates to: /// **'Anthropic — current time + timezone conversion.'** String get mcpSuggestionTimeDesc; /// No description provided for @mcpServerEnLanguageBadge. /// /// In en, this message translates to: /// **'Server text in English — Studio shows it as supplied.'** String get mcpServerEnLanguageBadge; /// No description provided for @themePluginHeader. /// /// In en, this message translates to: /// **'Theme plugin (applies instantly)'** String get themePluginHeader; /// No description provided for @themeApplied. /// /// In en, this message translates to: /// **'Theme applied: {name}'** String themeApplied(String name); /// No description provided for @themePluginFailed. /// /// In en, this message translates to: /// **'Theme plugin could not load — keeping previous theme.'** String get themePluginFailed; /// No description provided for @themePluginNone. /// /// In en, this message translates to: /// **'Built-in (no plugin)'** String get themePluginNone; /// No description provided for @themePluginHint. /// /// In en, this message translates to: /// **'Built-in and plugin tiles ship hand-curated palettes. The Custom tile derives a full Material 3 palette (primary, secondary, tertiary, surface, …) from one seed colour you pick — it\'s a complete theme, not a single-colour tweak.'** String get themePluginHint; /// No description provided for @themePluginEmpty. /// /// In en, this message translates to: /// **'No theme plugins installed. Open the Store and pick one in the studio-plugin category.'** String get themePluginEmpty; /// No description provided for @themePluginCustom. /// /// In en, this message translates to: /// **'Custom colour'** String get themePluginCustom; /// No description provided for @themePluginCustomDialogTitle. /// /// In en, this message translates to: /// **'Custom theme — pick a seed colour'** String get themePluginCustomDialogTitle; /// No description provided for @themePluginCustomHexLabel. /// /// In en, this message translates to: /// **'Hex colour'** String get themePluginCustomHexLabel; /// No description provided for @themePluginCustomPreview. /// /// In en, this message translates to: /// **'Live preview'** String get themePluginCustomPreview; /// No description provided for @themePluginCustomCancel. /// /// In en, this message translates to: /// **'Cancel'** String get themePluginCustomCancel; /// No description provided for @themePluginCustomApply. /// /// In en, this message translates to: /// **'Apply'** String get themePluginCustomApply; /// No description provided for @settingsTitle. /// /// In en, this message translates to: /// **'Hub endpoint'** String get settingsTitle; /// No description provided for @settingsHost. /// /// In en, this message translates to: /// **'Host'** String get settingsHost; /// No description provided for @settingsPort. /// /// In en, this message translates to: /// **'Port'** String get settingsPort; /// No description provided for @settingsTls. /// /// In en, this message translates to: /// **'TLS'** String get settingsTls; /// No description provided for @settingsSaveAndConnect. /// /// In en, this message translates to: /// **'Connect to endpoint'** String get settingsSaveAndConnect; /// No description provided for @settingsLanguage. /// /// In en, this message translates to: /// **'Language'** String get settingsLanguage; /// No description provided for @settingsLanguageHint. /// /// In en, this message translates to: /// **'App language. Affects every page; bilingual store entries also flip via this toggle.'** String get settingsLanguageHint; /// No description provided for @settingsHubEndpointHint. /// /// In en, this message translates to: /// **'Where should Studio connect? Default is the local hub at 127.0.0.1:50051.'** String get settingsHubEndpointHint; /// No description provided for @settingsTlsSubtitle. /// /// In en, this message translates to: /// **'https/grpc-secure'** String get settingsTlsSubtitle; /// No description provided for @settingsPortError. /// /// In en, this message translates to: /// **'port must be 1–65535'** String get settingsPortError; /// No description provided for @channelsBlurb. /// /// In en, this message translates to: /// **'Switch hub channel (writes ~/.chain/current-channel and restarts the daemon). Connect just changes Studio\'s wire.'** String get channelsBlurb; /// No description provided for @channelsActionsTooltip. /// /// In en, this message translates to: /// **'Channel actions'** String get channelsActionsTooltip; /// No description provided for @systemAiHeader. /// /// In en, this message translates to: /// **'SYSTEM AI'** String get systemAiHeader; /// No description provided for @systemAiEnabled. /// /// In en, this message translates to: /// **'enabled'** String get systemAiEnabled; /// No description provided for @systemAiOff. /// /// In en, this message translates to: /// **'off'** String get systemAiOff; /// No description provided for @systemAiEdit. /// /// In en, this message translates to: /// **'Edit…'** String get systemAiEdit; /// No description provided for @systemAiConfigure. /// /// In en, this message translates to: /// **'Configure…'** String get systemAiConfigure; /// No description provided for @systemAiOffBlurb. /// /// In en, this message translates to: /// **'Off — failure explanations on the audit page are disabled. Click Configure… to pick a provider (Ollama / OpenAI / LM Studio / vLLM / Custom). Operator config is rewritten in place; no daemon restart needed.'** String get systemAiOffBlurb; /// No description provided for @mcpServersCount. /// /// In en, this message translates to: /// **'{n} {n, plural, =1{server} other{servers}}'** String mcpServersCount(int n); /// No description provided for @mcpRediscoverTooltip. /// /// In en, this message translates to: /// **'Re-run discovery'** String get mcpRediscoverTooltip; /// No description provided for @mcpAddTooltip. /// /// In en, this message translates to: /// **'Add MCP server'** String get mcpAddTooltip; /// No description provided for @mcpRemoveTooltip. /// /// In en, this message translates to: /// **'Remove server'** String get mcpRemoveTooltip; /// No description provided for @mcpToolsCount. /// /// In en, this message translates to: /// **'{n} {n, plural, =1{tool} other{tools}}'** String mcpToolsCount(int n); /// No description provided for @n8nEndpointsCount. /// /// In en, this message translates to: /// **'{n} {n, plural, =1{endpoint} other{endpoints}}'** String n8nEndpointsCount(int n); /// No description provided for @n8nWorkflowsCount. /// /// In en, this message translates to: /// **'{n} {n, plural, =1{workflow} other{workflows}}'** String n8nWorkflowsCount(int n); /// No description provided for @n8nRediscoverTooltip. /// /// In en, this message translates to: /// **'Re-run discovery'** String get n8nRediscoverTooltip; /// No description provided for @n8nAddTooltip. /// /// In en, this message translates to: /// **'Add n8n endpoint'** String get n8nAddTooltip; /// No description provided for @n8nRemoveTooltip. /// /// In en, this message translates to: /// **'Remove endpoint'** String get n8nRemoveTooltip; /// No description provided for @addMcpTitle. /// /// In en, this message translates to: /// **'Add MCP server'** String get addMcpTitle; /// No description provided for @addMcpIntro. /// /// In en, this message translates to: /// **'Tools the server advertises via `tools/list` appear in the Store as `mcp..` capabilities.'** String get addMcpIntro; /// No description provided for @addMcpSuggestionsLabel. /// /// In en, this message translates to: /// **'Suggested servers — click to pre-fill'** String get addMcpSuggestionsLabel; /// No description provided for @addMcpNameLabel. /// /// In en, this message translates to: /// **'Name (no dots)'** String get addMcpNameLabel; /// No description provided for @addMcpNameHint. /// /// In en, this message translates to: /// **'filesystem'** String get addMcpNameHint; /// No description provided for @addMcpEndpointLabel. /// /// In en, this message translates to: /// **'Endpoint'** String get addMcpEndpointLabel; /// No description provided for @addMcpEndpointHint. /// /// In en, this message translates to: /// **'http://127.0.0.1:3001/mcp'** String get addMcpEndpointHint; /// No description provided for @addMcpApiKeyLabel. /// /// In en, this message translates to: /// **'API key env var (optional)'** String get addMcpApiKeyLabel; /// No description provided for @addMcpApiKeyHint. /// /// In en, this message translates to: /// **'MCP_FILESYSTEM_TOKEN'** String get addMcpApiKeyHint; /// No description provided for @addMcpNotesLabel. /// /// In en, this message translates to: /// **'Notes (optional)'** String get addMcpNotesLabel; /// No description provided for @addMcpAddButton. /// /// In en, this message translates to: /// **'Add + discover'** String get addMcpAddButton; /// No description provided for @addN8nTitle. /// /// In en, this message translates to: /// **'Add n8n endpoint'** String get addN8nTitle; /// No description provided for @addN8nIntro. /// /// In en, this message translates to: /// **'Active workflows surface in the Store as `n8n..` capabilities.'** String get addN8nIntro; /// No description provided for @addN8nNameLabel. /// /// In en, this message translates to: /// **'Name (no dots)'** String get addN8nNameLabel; /// No description provided for @addN8nNameHint. /// /// In en, this message translates to: /// **'ops'** String get addN8nNameHint; /// No description provided for @addN8nBaseUrlLabel. /// /// In en, this message translates to: /// **'Base URL (without /api/v1)'** String get addN8nBaseUrlLabel; /// No description provided for @addN8nBaseUrlHint. /// /// In en, this message translates to: /// **'https://n8n.example.com'** String get addN8nBaseUrlHint; /// No description provided for @addN8nApiKeyLabel. /// /// In en, this message translates to: /// **'API key env var (optional)'** String get addN8nApiKeyLabel; /// No description provided for @addN8nApiKeyHint. /// /// In en, this message translates to: /// **'N8N_OPS_KEY'** String get addN8nApiKeyHint; /// No description provided for @addN8nNotesLabel. /// /// In en, this message translates to: /// **'Notes (optional)'** String get addN8nNotesLabel; /// No description provided for @addN8nAddButton. /// /// In en, this message translates to: /// **'Add + discover'** String get addN8nAddButton; /// No description provided for @addedMcpToast. /// /// In en, this message translates to: /// **'Added MCP server \"{name}\".'** String addedMcpToast(String name); /// No description provided for @addedN8nToast. /// /// In en, this message translates to: /// **'Added n8n endpoint \"{name}\".'** String addedN8nToast(String name); /// No description provided for @addFailedToast. /// /// In en, this message translates to: /// **'Add failed: {error}'** String addFailedToast(String error); /// No description provided for @removeFailedToast. /// /// In en, this message translates to: /// **'Remove failed: {error}'** String removeFailedToast(String error); /// No description provided for @refreshFailedToast. /// /// In en, this message translates to: /// **'Refresh failed: {error}'** String refreshFailedToast(String error); /// No description provided for @channelsHeader. /// /// In en, this message translates to: /// **'CHANNELS'** String get channelsHeader; /// No description provided for @channelsActive. /// /// In en, this message translates to: /// **'active'** String get channelsActive; /// No description provided for @channelsRunning. /// /// In en, this message translates to: /// **'running'** String get channelsRunning; /// No description provided for @channelsStopped. /// /// In en, this message translates to: /// **'stopped'** String get channelsStopped; /// No description provided for @channelsConnect. /// /// In en, this message translates to: /// **'Connect Studio to this channel'** String get channelsConnect; /// No description provided for @channelsSwitch. /// /// In en, this message translates to: /// **'Make this the active channel'** String get channelsSwitch; /// No description provided for @channelsEnableAutostart. /// /// In en, this message translates to: /// **'Enable autostart at login'** String get channelsEnableAutostart; /// No description provided for @channelsDisableAutostart. /// /// In en, this message translates to: /// **'Disable autostart'** String get channelsDisableAutostart; /// No description provided for @storeSearchHint. /// /// In en, this message translates to: /// **'Search modules — name, tagline, tag, capability…'** String get storeSearchHint; /// No description provided for @storeAskHint. /// /// In en, this message translates to: /// **'What do you need? Try \"a module that reads tabular data\" or just type a keyword.'** String get storeAskHint; /// No description provided for @storeAskSubmit. /// /// In en, this message translates to: /// **'Search'** String get storeAskSubmit; /// No description provided for @storeAskAi. /// /// In en, this message translates to: /// **'Ask the AI'** String get storeAskAi; /// No description provided for @storeAskClear. /// /// In en, this message translates to: /// **'Clear question'** String get storeAskClear; /// No description provided for @storeAskAiThinking. /// /// In en, this message translates to: /// **'Looking through modules…'** String get storeAskAiThinking; /// No description provided for @storeAskAiUnavailable. /// /// In en, this message translates to: /// **'Configure a System AI in Settings to ask questions in plain language.'** String get storeAskAiUnavailable; /// No description provided for @storeAskNoMatches. /// /// In en, this message translates to: /// **'No matches yet — refine the question or browse the grid below.'** String get storeAskNoMatches; /// No description provided for @storeAskAnswerLabel. /// /// In en, this message translates to: /// **'AI suggestion'** String get storeAskAnswerLabel; /// No description provided for @storeAskAnswerWhy. /// /// In en, this message translates to: /// **'Why this matches'** String get storeAskAnswerWhy; /// No description provided for @storeAskMatchPill. /// /// In en, this message translates to: /// **'match'** String get storeAskMatchPill; /// No description provided for @storeFilterLabel. /// /// In en, this message translates to: /// **'Filter'** String get storeFilterLabel; /// No description provided for @storeFilterActiveCount. /// /// In en, this message translates to: /// **'{n} active'** String storeFilterActiveCount(int n); /// No description provided for @storeFilterReset. /// /// In en, this message translates to: /// **'Reset filters'** String get storeFilterReset; /// No description provided for @storeFilterApply. /// /// In en, this message translates to: /// **'Done'** String get storeFilterApply; /// No description provided for @storeFilterStatusGroup. /// /// In en, this message translates to: /// **'Status'** String get storeFilterStatusGroup; /// No description provided for @storeFilterSourceGroup. /// /// In en, this message translates to: /// **'Source'** String get storeFilterSourceGroup; /// No description provided for @storeFilterInstalledGroup. /// /// In en, this message translates to: /// **'Show only installed'** String get storeFilterInstalledGroup; /// No description provided for @storeFeatured. /// /// In en, this message translates to: /// **'FEATURED'** String get storeFeatured; /// No description provided for @storeFeaturedHint. /// /// In en, this message translates to: /// **'curated picks · click for details'** String get storeFeaturedHint; /// No description provided for @storeNoMatches. /// /// In en, this message translates to: /// **'No matches'** String get storeNoMatches; /// No description provided for @storeNoMatchesHint. /// /// In en, this message translates to: /// **'Adjust the filters or clear the search to see all entries.'** String get storeNoMatchesHint; /// No description provided for @storeClearFilters. /// /// In en, this message translates to: /// **'Clear filters'** String get storeClearFilters; /// No description provided for @storeStatusAll. /// /// In en, this message translates to: /// **'All'** String get storeStatusAll; /// No description provided for @storeStatusPublished. /// /// In en, this message translates to: /// **'stable'** String get storeStatusPublished; /// No description provided for @storeStatusAlpha. /// /// In en, this message translates to: /// **'experimental'** String get storeStatusAlpha; /// No description provided for @storeStatusPlanned. /// /// In en, this message translates to: /// **'coming soon'** String get storeStatusPlanned; /// No description provided for @storeInstalledOnly. /// /// In en, this message translates to: /// **'Installed'** String get storeInstalledOnly; /// No description provided for @storeCategoryLabel. /// /// In en, this message translates to: /// **'Category'** String get storeCategoryLabel; /// No description provided for @storeCategoryAll. /// /// In en, this message translates to: /// **'All categories'** String get storeCategoryAll; /// No description provided for @storeCategoryBridge. /// /// In en, this message translates to: /// **'Connectors'** String get storeCategoryBridge; /// No description provided for @storeCategoryDebug. /// /// In en, this message translates to: /// **'Sample modules'** String get storeCategoryDebug; /// No description provided for @storeCategoryText. /// /// In en, this message translates to: /// **'Text'** String get storeCategoryText; /// No description provided for @storeCategoryLlm. /// /// In en, this message translates to: /// **'AI models'** String get storeCategoryLlm; /// No description provided for @storeCategorySystem. /// /// In en, this message translates to: /// **'System'** String get storeCategorySystem; /// No description provided for @storeCategoryAuth. /// /// In en, this message translates to: /// **'Authentication'** String get storeCategoryAuth; /// No description provided for @storeCategoryStorage. /// /// In en, this message translates to: /// **'Storage'** String get storeCategoryStorage; /// No description provided for @storeCategoryChannel. /// /// In en, this message translates to: /// **'Channels'** String get storeCategoryChannel; /// No description provided for @storeCategoryWeb. /// /// In en, this message translates to: /// **'Web'** String get storeCategoryWeb; /// No description provided for @storeCategoryOrchestrator. /// /// In en, this message translates to: /// **'Orchestration'** String get storeCategoryOrchestrator; /// No description provided for @storeNResults. /// /// In en, this message translates to: /// **'{n} result{n, plural, =1{} other{s}}'** String storeNResults(int n); /// No description provided for @storeReloadTooltip. /// /// In en, this message translates to: /// **'Reload'** String get storeReloadTooltip; /// No description provided for @storeTodayBadge. /// /// In en, this message translates to: /// **'TODAY'** String get storeTodayBadge; /// No description provided for @storeTodayDeck. /// /// In en, this message translates to: /// **'From the Ch∆In editor'** String get storeTodayDeck; /// No description provided for @storeTodayDismissTooltip. /// /// In en, this message translates to: /// **'Hide for this session'** String get storeTodayDismissTooltip; /// No description provided for @storePillInstalled. /// /// In en, this message translates to: /// **'installed'** String get storePillInstalled; /// No description provided for @storePillUpdate. /// /// In en, this message translates to: /// **'update'** String get storePillUpdate; /// No description provided for @storeUpdateButton. /// /// In en, this message translates to: /// **'Update to {version}'** String storeUpdateButton(String version); /// No description provided for @storeUpdateTooltip. /// /// In en, this message translates to: /// **'Installed {installed} — store has v{best}'** String storeUpdateTooltip(String installed, String best); /// No description provided for @storeNoTagline. /// /// In en, this message translates to: /// **'(no tagline)'** String get storeNoTagline; /// No description provided for @storeUninstallTitle. /// /// In en, this message translates to: /// **'Uninstall module?'** String get storeUninstallTitle; /// No description provided for @storeUninstallBody. /// /// In en, this message translates to: /// **'Removes {name} from this hub. Flows that reference it will fail at the next run.'** String storeUninstallBody(String name); /// No description provided for @storeInstalledToast. /// /// In en, this message translates to: /// **'{name} v{version} installed.'** String storeInstalledToast(String name, String version); /// No description provided for @storeInstallFailedToast. /// /// In en, this message translates to: /// **'Install failed: {error}'** String storeInstallFailedToast(String error); /// No description provided for @storeUninstalledToast. /// /// In en, this message translates to: /// **'{name} v{version} uninstalled.'** String storeUninstalledToast(String name, String version); /// No description provided for @storeUninstallFailedToast. /// /// In en, this message translates to: /// **'Uninstall failed: {error}'** String storeUninstallFailedToast(String error); /// No description provided for @storeOpenBrowserFailed. /// /// In en, this message translates to: /// **'Could not open browser: {error}'** String storeOpenBrowserFailed(String error); /// No description provided for @storeSectionTags. /// /// In en, this message translates to: /// **'Tags'** String get storeSectionTags; /// No description provided for @storeSectionRequiredCapabilities. /// /// In en, this message translates to: /// **'Required capabilities'** String get storeSectionRequiredCapabilities; /// No description provided for @storeSectionRequiredHostServices. /// /// In en, this message translates to: /// **'Required host services'** String get storeSectionRequiredHostServices; /// No description provided for @storeSectionScreenshots. /// /// In en, this message translates to: /// **'Screenshots'** String get storeSectionScreenshots; /// No description provided for @storeSectionDocumentation. /// /// In en, this message translates to: /// **'Documentation'** String get storeSectionDocumentation; /// No description provided for @storeSectionSource. /// /// In en, this message translates to: /// **'Source'** String get storeSectionSource; /// No description provided for @storeSectionPermissions. /// /// In en, this message translates to: /// **'Declared permissions'** String get storeSectionPermissions; /// No description provided for @storeSectionDirectory. /// /// In en, this message translates to: /// **'Module directory'** String get storeSectionDirectory; /// No description provided for @storeSectionPermissionsNone. /// /// In en, this message translates to: /// **'(none — pure-computation module)'** String get storeSectionPermissionsNone; /// No description provided for @storeInstallingButton. /// /// In en, this message translates to: /// **'Installing…'** String get storeInstallingButton; /// No description provided for @storeNotInstallable. /// /// In en, this message translates to: /// **'Not installable'** String get storeNotInstallable; /// No description provided for @storeNotInstallableTooltip. /// /// In en, this message translates to: /// **'Status \"{status}\" — install path not yet wired.'** String storeNotInstallableTooltip(String status); /// No description provided for @storeInstallProgressTitle. /// /// In en, this message translates to: /// **'Installing {name}'** String storeInstallProgressTitle(String name); /// No description provided for @storeInstallProgressBody. /// /// In en, this message translates to: /// **'Fetching, verifying, unpacking…'** String get storeInstallProgressBody; /// No description provided for @storeLoadDocs. /// /// In en, this message translates to: /// **'Load documentation'** String get storeLoadDocs; /// No description provided for @storeDocsHint. /// /// In en, this message translates to: /// **'README rendered inline; uses the hub\'s registry token when needed.'** String get storeDocsHint; /// No description provided for @storeDocsFetching. /// /// In en, this message translates to: /// **'Fetching README…'** String get storeDocsFetching; /// No description provided for @storeOpenRepoButton. /// /// In en, this message translates to: /// **'Open repository in browser'** String get storeOpenRepoButton; /// No description provided for @storeDocsErrorNotFound. /// /// In en, this message translates to: /// **'This module is not in the hub\'s store index.'** String get storeDocsErrorNotFound; /// No description provided for @storeDocsErrorNoDocs. /// /// In en, this message translates to: /// **'No repository URL is recorded for this module.'** String get storeDocsErrorNoDocs; /// No description provided for @storeDocsErrorAuth. /// /// In en, this message translates to: /// **'The registry requires authentication to fetch this README. Set CHAIN_REGISTRY_TOKEN in the daemon\'s environment and restart the hub.'** String get storeDocsErrorAuth; /// No description provided for @storeDocsErrorNetwork. /// /// In en, this message translates to: /// **'Network error while fetching the README. {detail}'** String storeDocsErrorNetwork(String detail); /// No description provided for @storeDocsErrorParse. /// /// In en, this message translates to: /// **'README is not valid UTF-8.'** String get storeDocsErrorParse; /// No description provided for @storeDocsErrorGeneric. /// /// In en, this message translates to: /// **'Could not load README.'** String get storeDocsErrorGeneric; /// No description provided for @storeSourceLabel. /// /// In en, this message translates to: /// **'Source'** String get storeSourceLabel; /// No description provided for @storeSourceAll. /// /// In en, this message translates to: /// **'All sources'** String get storeSourceAll; /// No description provided for @storeSourceNative. /// /// In en, this message translates to: /// **'Native'** String get storeSourceNative; /// No description provided for @storeSourceMcp. /// /// In en, this message translates to: /// **'MCP'** String get storeSourceMcp; /// No description provided for @storeSourceN8n. /// /// In en, this message translates to: /// **'n8n'** String get storeSourceN8n; /// No description provided for @storeProvenanceNative. /// /// In en, this message translates to: /// **'native'** String get storeProvenanceNative; /// No description provided for @storeProvenanceMcp. /// /// In en, this message translates to: /// **'mcp · {provider}'** String storeProvenanceMcp(String provider); /// No description provided for @storeProvenanceN8n. /// /// In en, this message translates to: /// **'n8n · {provider}'** String storeProvenanceN8n(String provider); /// No description provided for @storeRecommendedTitle. /// /// In en, this message translates to: /// **'Add a public source — one click'** String get storeRecommendedTitle; /// No description provided for @storeRecommendedBody. /// /// In en, this message translates to: /// **'Curated MCP servers reachable over HTTPS. No subprocess, no API key, no Node. Federated capabilities appear in the store immediately.'** String get storeRecommendedBody; /// No description provided for @storeRecommendedAddTooltip. /// /// In en, this message translates to: /// **'Add and discover'** String get storeRecommendedAddTooltip; /// No description provided for @storeRecommendedAdding. /// /// In en, this message translates to: /// **'Adding…'** String get storeRecommendedAdding; /// No description provided for @storeRecommendedDeepWikiTagline. /// /// In en, this message translates to: /// **'GitHub repo documentation search (AI-powered)'** String get storeRecommendedDeepWikiTagline; /// No description provided for @storeRecommendedSemgrepTagline. /// /// In en, this message translates to: /// **'Security scanning for code vulnerabilities'** String get storeRecommendedSemgrepTagline; /// No description provided for @storeProviderAddedToast. /// /// In en, this message translates to: /// **'Added {name} — {n} federated {n, plural, =1{capability} other{capabilities}}.'** String storeProviderAddedToast(String name, int n); /// No description provided for @storeProviderAddedZeroToast. /// /// In en, this message translates to: /// **'{name} registered, but the server returned no capabilities yet. Open Settings → MCP Clients to retry discovery or check the server.'** String storeProviderAddedZeroToast(String name); /// No description provided for @storeProviderAddFailed. /// /// In en, this message translates to: /// **'Could not add {name}: {error}'** String storeProviderAddFailed(String name, String error); /// No description provided for @auditTitle. /// /// In en, this message translates to: /// **'Audit'** String get auditTitle; /// No description provided for @auditNoEvents. /// /// In en, this message translates to: /// **'No events yet'** String get auditNoEvents; /// No description provided for @auditNoEventsHint. /// /// In en, this message translates to: /// **'Run a flow to populate the audit stream.\nEvents appear here within seconds.'** String get auditNoEventsHint; /// No description provided for @auditFilterAll. /// /// In en, this message translates to: /// **'all'** String get auditFilterAll; /// No description provided for @auditFilterFlow. /// /// In en, this message translates to: /// **'flow'** String get auditFilterFlow; /// No description provided for @auditFilterStep. /// /// In en, this message translates to: /// **'step'** String get auditFilterStep; /// No description provided for @auditFilterModule. /// /// In en, this message translates to: /// **'module'** String get auditFilterModule; /// No description provided for @auditClearLogTooltip. /// /// In en, this message translates to: /// **'Clear log (local/dev channels only)'** String get auditClearLogTooltip; /// No description provided for @auditClearedToast. /// /// In en, this message translates to: /// **'Cleared {n} events on channel \"{channel}\". Chain reseeded with marker.'** String auditClearedToast(int n, String channel); /// No description provided for @auditClearFailed. /// /// In en, this message translates to: /// **'Clear failed: {detail}'** String auditClearFailed(String detail); /// No description provided for @auditExplain. /// /// In en, this message translates to: /// **'Explain'** String get auditExplain; /// No description provided for @auditReask. /// /// In en, this message translates to: /// **'Re-ask'** String get auditReask; /// No description provided for @auditAsking. /// /// In en, this message translates to: /// **'Asking…'** String get auditAsking; /// No description provided for @auditSystemAi. /// /// In en, this message translates to: /// **'SYSTEM AI'** String get auditSystemAi; /// No description provided for @auditCachedPill. /// /// In en, this message translates to: /// **'cached'** String get auditCachedPill; /// No description provided for @auditOriginalLatency. /// /// In en, this message translates to: /// **'orig {ms} ms'** String auditOriginalLatency(int ms); /// No description provided for @auditLatency. /// /// In en, this message translates to: /// **'{ms} ms'** String auditLatency(int ms); /// No description provided for @auditRegenerateTooltip. /// /// In en, this message translates to: /// **'Regenerate — skip cache, ask the model again'** String get auditRegenerateTooltip; /// No description provided for @auditLiveStatus. /// /// In en, this message translates to: /// **'live · polling 2s · {n} {n, plural, =1{event} other{events}}'** String auditLiveStatus(int n); /// No description provided for @auditDisconnected. /// /// In en, this message translates to: /// **'disconnected · {error}'** String auditDisconnected(String error); /// No description provided for @auditHashChainVerified. /// /// In en, this message translates to: /// **'hash chain verified'** String get auditHashChainVerified; /// No description provided for @auditDetailHeader. /// /// In en, this message translates to: /// **'DETAIL'** String get auditDetailHeader; /// No description provided for @auditAskingFull. /// /// In en, this message translates to: /// **'Asking the configured System AI…'** String get auditAskingFull; /// No description provided for @auditFixLabel. /// /// In en, this message translates to: /// **'FIX'** String get auditFixLabel; /// No description provided for @auditCachedTooltipKnown. /// /// In en, this message translates to: /// **'Served from the local cache. Originally generated on {at}{hits}.'** String auditCachedTooltipKnown(String at, String hits); /// No description provided for @auditCachedTooltipUnknown. /// /// In en, this message translates to: /// **'Served from the local cache. Originally generated at unknown time{hits}.'** String auditCachedTooltipUnknown(String hits); /// No description provided for @auditCachedTooltipHits. /// /// In en, this message translates to: /// **' · {n} hits'** String auditCachedTooltipHits(int n); /// No description provided for @auditConfigureSystemAi. /// /// In en, this message translates to: /// **'Configure System AI in Settings (Cmd+,)'** String get auditConfigureSystemAi; /// No description provided for @auditClearDialogTitle. /// /// In en, this message translates to: /// **'Clear audit log?'** String get auditClearDialogTitle; /// No description provided for @auditClearDialogBody. /// /// In en, this message translates to: /// **'Wipes every audit event on the active channel and seeds a fresh chain.reset marker carrying reviewer + reason. Refused on beta / production. Irreversible.'** String get auditClearDialogBody; /// No description provided for @auditClearReviewerLabel. /// /// In en, this message translates to: /// **'Reviewer'** String get auditClearReviewerLabel; /// No description provided for @auditClearReasonLabel. /// /// In en, this message translates to: /// **'Reason (recorded in chain.reset marker)'** String get auditClearReasonLabel; /// No description provided for @auditClearReasonHelper. /// /// In en, this message translates to: /// **'Required — auditors will read this.'** String get auditClearReasonHelper; /// No description provided for @auditClearLogButton. /// /// In en, this message translates to: /// **'Clear log'** String get auditClearLogButton; /// No description provided for @modulesTitle. /// /// In en, this message translates to: /// **'Modules'** String get modulesTitle; /// No description provided for @modulesNoneTitle. /// /// In en, this message translates to: /// **'No modules yet'** String get modulesNoneTitle; /// No description provided for @modulesNoneHint. /// /// In en, this message translates to: /// **'Run `chain install ` or check ~/.chain/modules/.'** String get modulesNoneHint; /// No description provided for @modulesReloadTooltip. /// /// In en, this message translates to: /// **'Reload'** String get modulesReloadTooltip; /// No description provided for @modulesRecentActivity. /// /// In en, this message translates to: /// **'RECENT ACTIVITY'** String get modulesRecentActivity; /// No description provided for @modulesRecentActivityHint. /// /// In en, this message translates to: /// **'last {n} install/uninstall events from the audit log'** String modulesRecentActivityHint(int n); /// No description provided for @modulesActivityInstalled. /// /// In en, this message translates to: /// **'installed'** String get modulesActivityInstalled; /// No description provided for @modulesActivityUninstalled. /// /// In en, this message translates to: /// **'uninstalled'** String get modulesActivityUninstalled; /// No description provided for @modulesCapabilitiesLabel. /// /// In en, this message translates to: /// **'Capabilities'** String get modulesCapabilitiesLabel; /// No description provided for @modulesUninstallTitle. /// /// In en, this message translates to: /// **'Uninstall module?'** String get modulesUninstallTitle; /// No description provided for @modulesUninstallBody. /// /// In en, this message translates to: /// **'Removes {name} v{version} from this hub. Flows that reference it will fail at the next run. A `module.uninstalled` audit event is recorded.'** String modulesUninstallBody(String name, String version); /// No description provided for @modulesUninstalledToast. /// /// In en, this message translates to: /// **'Uninstalled {name} v{version}.'** String modulesUninstalledToast(String name, String version); /// No description provided for @modulesUninstallFailed. /// /// In en, this message translates to: /// **'Uninstall failed: {error}'** String modulesUninstallFailed(String error); /// No description provided for @modulesUninstalling. /// /// In en, this message translates to: /// **'Uninstalling…'** String get modulesUninstalling; /// No description provided for @moduleSheetFailedToLoad. /// /// In en, this message translates to: /// **'Failed to load: {error}'** String moduleSheetFailedToLoad(String error); /// No description provided for @moduleSheetCapabilities. /// /// In en, this message translates to: /// **'Capabilities'** String get moduleSheetCapabilities; /// No description provided for @moduleSheetPermissions. /// /// In en, this message translates to: /// **'Declared permissions'** String get moduleSheetPermissions; /// No description provided for @moduleSheetNoPermissions. /// /// In en, this message translates to: /// **'(none — pure-computation module)'** String get moduleSheetNoPermissions; /// No description provided for @flowsTitle. /// /// In en, this message translates to: /// **'Flows'** String get flowsTitle; /// No description provided for @flowsReloadTooltip. /// /// In en, this message translates to: /// **'Reload'** String get flowsReloadTooltip; /// No description provided for @flowsNoneTitle. /// /// In en, this message translates to: /// **'No saved flows'** String get flowsNoneTitle; /// No description provided for @flowsNoneHint. /// /// In en, this message translates to: /// **'Save a flow with `chain admin flows save ` and it shows up here.'** String get flowsNoneHint; /// No description provided for @flowsRunDialogTitle. /// /// In en, this message translates to: /// **'Run {name}'** String flowsRunDialogTitle(String name); /// No description provided for @flowsRunDialogBody. /// /// In en, this message translates to: /// **'One field per declared input. Pick a file for bytes-shaped inputs; type plain text for the rest. The Run button enables when every required input is set.'** String get flowsRunDialogBody; /// No description provided for @flowsLoadingDefinition. /// /// In en, this message translates to: /// **'Loading inputs…'** String get flowsLoadingDefinition; /// No description provided for @flowsDefinitionFailed. /// /// In en, this message translates to: /// **'Could not load flow definition'** String get flowsDefinitionFailed; /// No description provided for @flowsNoInputs. /// /// In en, this message translates to: /// **'This flow declares no inputs. Click Run to start.'** String get flowsNoInputs; /// No description provided for @flowsTypeBytesPick. /// /// In en, this message translates to: /// **'Choose file…'** String get flowsTypeBytesPick; /// No description provided for @flowsTypeBytesChange. /// /// In en, this message translates to: /// **'Change file'** String get flowsTypeBytesChange; /// No description provided for @flowsTypeBytesNoFile. /// /// In en, this message translates to: /// **'No file selected'** String get flowsTypeBytesNoFile; /// No description provided for @flowsTypeBytesSize. /// /// In en, this message translates to: /// **'{n} bytes'** String flowsTypeBytesSize(int n); /// No description provided for @flowsRunErrorTitle. /// /// In en, this message translates to: /// **'Flow run failed'** String get flowsRunErrorTitle; /// No description provided for @flowsFileReadFailed. /// /// In en, this message translates to: /// **'Could not read \"{path}\": {error}'** String flowsFileReadFailed(String path, String error); /// No description provided for @flowsMissingModulesLabel. /// /// In en, this message translates to: /// **'Needs:'** String get flowsMissingModulesLabel; /// No description provided for @flowsRunDisabledTooltip. /// /// In en, this message translates to: /// **'Install the missing modules first.'** String get flowsRunDisabledTooltip; /// No description provided for @flowsInstallAllButton. /// /// In en, this message translates to: /// **'Install all ({n})'** String flowsInstallAllButton(int n); /// No description provided for @flowsInstallPillTooltip. /// /// In en, this message translates to: /// **'Click to install'** String get flowsInstallPillTooltip; /// No description provided for @flowsInstallDepsTitle. /// /// In en, this message translates to: /// **'Install dependencies'** String get flowsInstallDepsTitle; /// No description provided for @flowsInstallDepsBody. /// /// In en, this message translates to: /// **'Walking through the missing modules in order. Existing installs are left alone.'** String get flowsInstallDepsBody; /// No description provided for @flowsInstallStatusPending. /// /// In en, this message translates to: /// **'Pending'** String get flowsInstallStatusPending; /// No description provided for @flowsInstallStatusInstalling. /// /// In en, this message translates to: /// **'Installing…'** String get flowsInstallStatusInstalling; /// No description provided for @flowsInstallStatusDone. /// /// In en, this message translates to: /// **'Installed v{version}'** String flowsInstallStatusDone(String version); /// No description provided for @flowsInstallStatusFailed. /// /// In en, this message translates to: /// **'Failed'** String get flowsInstallStatusFailed; /// No description provided for @flowsInstallStatusFailedDetail. /// /// In en, this message translates to: /// **'{error}'** String flowsInstallStatusFailedDetail(String error); /// No description provided for @flowsInstallDepsAllDone. /// /// In en, this message translates to: /// **'All dependencies installed.'** String get flowsInstallDepsAllDone; /// No description provided for @flowsInstallDepsAnyFailed. /// /// In en, this message translates to: /// **'{ok} installed, {failed} failed.'** String flowsInstallDepsAnyFailed(int ok, int failed); /// No description provided for @flowsInstallAuthWallButton. /// /// In en, this message translates to: /// **'Add registry token'** String get flowsInstallAuthWallButton; /// No description provided for @flowsOpenInEditorTooltip. /// /// In en, this message translates to: /// **'Open in Studio\'s flow editor'** String get flowsOpenInEditorTooltip; /// No description provided for @flowsOpenInEditorFailed. /// /// In en, this message translates to: /// **'Could not open file: {error}'** String flowsOpenInEditorFailed(String error); /// No description provided for @registryCredentialsHeader. /// /// In en, this message translates to: /// **'REGISTRY CREDENTIALS'** String get registryCredentialsHeader; /// No description provided for @registryCredentialsBlurb. /// /// In en, this message translates to: /// **'Token used to download .fai modules from a registry behind a signin wall (Forgejo, GitHub-private). Stored at ~/.chain/registry-token, mode 0600. The CHAIN_REGISTRY_TOKEN env var still wins when set.'** String get registryCredentialsBlurb; /// No description provided for @registryTokenStatusConfigured. /// /// In en, this message translates to: /// **'Configured ({chars} chars)'** String registryTokenStatusConfigured(int chars); /// No description provided for @registryTokenStatusNotSet. /// /// In en, this message translates to: /// **'Not set'** String get registryTokenStatusNotSet; /// No description provided for @registryTokenFieldLabel. /// /// In en, this message translates to: /// **'Token'** String get registryTokenFieldLabel; /// No description provided for @registryTokenFieldHint. /// /// In en, this message translates to: /// **'Paste your Forgejo or GitHub personal access token'** String get registryTokenFieldHint; /// No description provided for @registryTokenSaveButton. /// /// In en, this message translates to: /// **'Save'** String get registryTokenSaveButton; /// No description provided for @registryTokenClearButton. /// /// In en, this message translates to: /// **'Clear'** String get registryTokenClearButton; /// No description provided for @registryTokenStorageHint. /// /// In en, this message translates to: /// **'Saved locally to ~/.chain/registry-token. Never sent to a remote service.'** String get registryTokenStorageHint; /// No description provided for @registryTokenSavedToast. /// /// In en, this message translates to: /// **'Registry token saved.'** String get registryTokenSavedToast; /// No description provided for @registryTokenClearedToast. /// /// In en, this message translates to: /// **'Registry token cleared.'** String get registryTokenClearedToast; /// No description provided for @registryTokenSaveFailedToast. /// /// In en, this message translates to: /// **'Could not save: {error}'** String registryTokenSaveFailedToast(String error); /// No description provided for @hubAuthTokenHeader. /// /// In en, this message translates to: /// **'HUB AUTHENTICATION'** String get hubAuthTokenHeader; /// No description provided for @hubAuthTokenBlurb. /// /// In en, this message translates to: /// **'Bearer token used to authenticate Studio against a hub that has auth.tokens: configured (RBAC Level 2). Stored at ~/.chain/hub-auth-token, mode 0600. Studio sends it as Authorization: Bearer on every gRPC call.'** String get hubAuthTokenBlurb; /// No description provided for @hubAuthTokenStatusConfigured. /// /// In en, this message translates to: /// **'Configured ({chars} chars)'** String hubAuthTokenStatusConfigured(int chars); /// No description provided for @hubAuthTokenStatusNotSet. /// /// In en, this message translates to: /// **'Not set (anonymous)'** String get hubAuthTokenStatusNotSet; /// No description provided for @hubAuthTokenFieldLabel. /// /// In en, this message translates to: /// **'Token'** String get hubAuthTokenFieldLabel; /// No description provided for @hubAuthTokenFieldHint. /// /// In en, this message translates to: /// **'Paste a token from the hub operator\'s auth.tokens entry'** String get hubAuthTokenFieldHint; /// No description provided for @hubAuthTokenSaveButton. /// /// In en, this message translates to: /// **'Save'** String get hubAuthTokenSaveButton; /// No description provided for @hubAuthTokenClearButton. /// /// In en, this message translates to: /// **'Clear'** String get hubAuthTokenClearButton; /// No description provided for @hubAuthTokenStorageHint. /// /// In en, this message translates to: /// **'Saved locally to ~/.chain/hub-auth-token. Studio reconnects after save so the new token takes effect immediately.'** String get hubAuthTokenStorageHint; /// No description provided for @hubAuthTokenSavedToast. /// /// In en, this message translates to: /// **'Hub auth token saved.'** String get hubAuthTokenSavedToast; /// No description provided for @hubAuthTokenClearedToast. /// /// In en, this message translates to: /// **'Hub auth token cleared.'** String get hubAuthTokenClearedToast; /// No description provided for @hubAuthTokenSaveFailedToast. /// /// In en, this message translates to: /// **'Could not save: {error}'** String hubAuthTokenSaveFailedToast(String error); /// No description provided for @storeAdvisoryVersionTooltip. /// /// In en, this message translates to: /// **'Federated upstream service — version is advisory; the upstream may break compatibility without bumping it.'** String get storeAdvisoryVersionTooltip; /// No description provided for @uninstallVersionPickerTitle. /// /// In en, this message translates to: /// **'Pick a version to uninstall'** String get uninstallVersionPickerTitle; /// No description provided for @uninstallVersionPickerBody. /// /// In en, this message translates to: /// **'Several versions of `{module}` are installed side-by-side. Select the exact version to remove — the others stay in place.'** String uninstallVersionPickerBody(String module); /// No description provided for @uninstallVersionPickerContinue. /// /// In en, this message translates to: /// **'Continue'** String get uninstallVersionPickerContinue; /// No description provided for @defaultScopeHeader. /// /// In en, this message translates to: /// **'DEFAULT SCOPE'** String get defaultScopeHeader; /// No description provided for @defaultScopeBlurb. /// /// In en, this message translates to: /// **'Ordered list of publisher segments the hub consults when a flow names a capability without an explicit `/` prefix. First match wins — promote the segments your team uses most to the top. Catalog-known publishers appear as chips; arbitrary entries are accepted for private segments.'** String get defaultScopeBlurb; /// No description provided for @defaultScopeAddLabel. /// /// In en, this message translates to: /// **'Add publisher segment'** String get defaultScopeAddLabel; /// No description provided for @defaultScopeAddHint. /// /// In en, this message translates to: /// **'e.g. acme.team'** String get defaultScopeAddHint; /// No description provided for @defaultScopeAddButton. /// /// In en, this message translates to: /// **'Add'** String get defaultScopeAddButton; /// No description provided for @defaultScopeSuggestions. /// /// In en, this message translates to: /// **'Catalog suggestions:'** String get defaultScopeSuggestions; /// No description provided for @defaultScopeSavedToast. /// /// In en, this message translates to: /// **'Default scope updated.'** String get defaultScopeSavedToast; /// No description provided for @defaultScopeLoadFailed. /// /// In en, this message translates to: /// **'Could not load default scope.'** String get defaultScopeLoadFailed; /// No description provided for @defaultScopeNonEmptyError. /// /// In en, this message translates to: /// **'Default scope cannot be empty — keep at least one segment.'** String get defaultScopeNonEmptyError; /// No description provided for @maintenanceHeader. /// /// In en, this message translates to: /// **'HUB MAINTENANCE'** String get maintenanceHeader; /// No description provided for @maintenanceResetBlurb. /// /// In en, this message translates to: /// **'Wipe operator state and start over with a clean hub. Stops every running daemon, atomically backs ~/.chain/ up, then recreates it with the binary, channel state, MCP / n8n / system-AI config, and registry token preserved. Restore by moving the backup directory back.'** String get maintenanceResetBlurb; /// No description provided for @maintenanceKeepModulesTitle. /// /// In en, this message translates to: /// **'Keep installed modules'** String get maintenanceKeepModulesTitle; /// No description provided for @maintenanceKeepModulesSubtitle. /// /// In en, this message translates to: /// **'Default behaviour wipes ~/.chain/modules/ so a fresh install can verify the module-fetch path end-to-end.'** String get maintenanceKeepModulesSubtitle; /// No description provided for @maintenanceKeepDataTitle. /// /// In en, this message translates to: /// **'Keep audit log + saved flows'** String get maintenanceKeepDataTitle; /// No description provided for @maintenanceKeepDataSubtitle. /// /// In en, this message translates to: /// **'Default behaviour wipes ~/.chain/data/ so the audit chain restarts from a fresh genesis and the bundled sample flows re-import on first daemon start.'** String get maintenanceKeepDataSubtitle; /// No description provided for @maintenanceResetButton. /// /// In en, this message translates to: /// **'Reset hub state'** String get maintenanceResetButton; /// No description provided for @maintenanceResetInProgress. /// /// In en, this message translates to: /// **'Resetting…'** String get maintenanceResetInProgress; /// No description provided for @maintenanceResetConfirmTitle. /// /// In en, this message translates to: /// **'Reset hub state?'** String get maintenanceResetConfirmTitle; /// No description provided for @maintenanceResetConfirmBody. /// /// In en, this message translates to: /// **'This stops every daemon, moves ~/.chain/ to a timestamped backup, and starts fresh. The backup is fully restorable. Continue?'** String get maintenanceResetConfirmBody; /// No description provided for @maintenanceResetConfirmButton. /// /// In en, this message translates to: /// **'Reset'** String get maintenanceResetConfirmButton; /// No description provided for @welcomeChecklistAllSetTitle. /// /// In en, this message translates to: /// **'You\'re set up.'** String get welcomeChecklistAllSetTitle; /// No description provided for @welcomeChecklistAllSetBody. /// /// In en, this message translates to: /// **'Three threads to pull on next:'** String get welcomeChecklistAllSetBody; /// No description provided for @welcomeChecklistNextAuditTitle. /// /// In en, this message translates to: /// **'Read the audit log'** String get welcomeChecklistNextAuditTitle; /// No description provided for @welcomeChecklistNextAuditBody. /// /// In en, this message translates to: /// **'Every install, flow run, and approval lives in the hash-chained log. Open the Audit tab to see what your hub has been up to.'** String get welcomeChecklistNextAuditBody; /// No description provided for @welcomeChecklistNextAuditButton. /// /// In en, this message translates to: /// **'Open Audit'** String get welcomeChecklistNextAuditButton; /// No description provided for @welcomeChecklistNextTodayTitle. /// /// In en, this message translates to: /// **'Set up the daily Today story'** String get welcomeChecklistNextTodayTitle; /// No description provided for @welcomeChecklistNextTodayBody. /// /// In en, this message translates to: /// **'Run tools/today/propose.sh on a cron and the editorial card on the store auto-fills with operator-curated narratives.'** String get welcomeChecklistNextTodayBody; /// No description provided for @welcomeChecklistNextTodayButton. /// /// In en, this message translates to: /// **'Open Today docs'** String get welcomeChecklistNextTodayButton; /// No description provided for @welcomeChecklistNextModuleTitle. /// /// In en, this message translates to: /// **'Build your own module'** String get welcomeChecklistNextModuleTitle; /// No description provided for @welcomeChecklistNextModuleBody. /// /// In en, this message translates to: /// **'Generate a Rust+WASM scaffold with `chain new module `. The module-sdk handles the WIT plumbing; you write a typed invoke.'** String get welcomeChecklistNextModuleBody; /// No description provided for @welcomeChecklistNextModuleButton. /// /// In en, this message translates to: /// **'Read the docs'** String get welcomeChecklistNextModuleButton; /// No description provided for @auditGroupToday. /// /// In en, this message translates to: /// **'TODAY'** String get auditGroupToday; /// No description provided for @auditGroupYesterday. /// /// In en, this message translates to: /// **'YESTERDAY'** String get auditGroupYesterday; /// No description provided for @auditGroupThisWeek. /// /// In en, this message translates to: /// **'EARLIER THIS WEEK'** String get auditGroupThisWeek; /// No description provided for @auditGroupOlder. /// /// In en, this message translates to: /// **'OLDER'** String get auditGroupOlder; /// No description provided for @auditEventViewFlowRun. /// /// In en, this message translates to: /// **'View flow run'** String get auditEventViewFlowRun; /// No description provided for @auditFlowRunDialogTitle. /// /// In en, this message translates to: /// **'Flow run · {flow}'** String auditFlowRunDialogTitle(String flow); /// No description provided for @auditFlowRunDialogSubtitle. /// /// In en, this message translates to: /// **'{n} {n, plural, =1{event} other{events}} for execution {execution}'** String auditFlowRunDialogSubtitle(int n, String execution); /// No description provided for @approvalsSelectAll. /// /// In en, this message translates to: /// **'Select all'** String get approvalsSelectAll; /// No description provided for @approvalsClearSelection. /// /// In en, this message translates to: /// **'Clear'** String get approvalsClearSelection; /// No description provided for @approvalsBatchSelected. /// /// In en, this message translates to: /// **'{n} selected'** String approvalsBatchSelected(int n); /// No description provided for @approvalsBatchApprove. /// /// In en, this message translates to: /// **'Approve all'** String get approvalsBatchApprove; /// No description provided for @approvalsBatchReject. /// /// In en, this message translates to: /// **'Reject all'** String get approvalsBatchReject; /// No description provided for @approvalsBatchApproveDoneToast. /// /// In en, this message translates to: /// **'{n} approvals approved.'** String approvalsBatchApproveDoneToast(int n); /// No description provided for @approvalsBatchRejectDoneToast. /// /// In en, this message translates to: /// **'{n} approvals rejected.'** String approvalsBatchRejectDoneToast(int n); /// No description provided for @approvalsBatchPartialFailure. /// /// In en, this message translates to: /// **'{ok} done, {failed} failed.'** String approvalsBatchPartialFailure(int ok, int failed); /// No description provided for @flowsRunButton. /// /// In en, this message translates to: /// **'Run'** String get flowsRunButton; /// No description provided for @flowsRunningTitle. /// /// In en, this message translates to: /// **'Running {name}'** String flowsRunningTitle(String name); /// No description provided for @flowsResultTitle. /// /// In en, this message translates to: /// **'{name} — result'** String flowsResultTitle(String name); /// No description provided for @flowsErrorTitle. /// /// In en, this message translates to: /// **'{name} — failed'** String flowsErrorTitle(String name); /// No description provided for @flowsRunning. /// /// In en, this message translates to: /// **'Flow running…'** String get flowsRunning; /// No description provided for @flowsNoOutputs. /// /// In en, this message translates to: /// **'Flow completed with no declared outputs.'** String get flowsNoOutputs; /// No description provided for @errGeneric. /// /// In en, this message translates to: /// **'Something went wrong.'** String get errGeneric; /// No description provided for @errInvalidArgument. /// /// In en, this message translates to: /// **'Invalid input.'** String get errInvalidArgument; /// No description provided for @errInvalidArgumentHint. /// /// In en, this message translates to: /// **'Check the form values and try again.'** String get errInvalidArgumentHint; /// No description provided for @errNotFound. /// /// In en, this message translates to: /// **'Not found.'** String get errNotFound; /// No description provided for @errNotFoundHint. /// /// In en, this message translates to: /// **'The item you asked for isn\'t here — it may have been removed or never existed.'** String get errNotFoundHint; /// No description provided for @errAlreadyExists. /// /// In en, this message translates to: /// **'Already exists.'** String get errAlreadyExists; /// No description provided for @errPermissionDenied. /// /// In en, this message translates to: /// **'Permission denied.'** String get errPermissionDenied; /// No description provided for @errPermissionDeniedHint. /// /// In en, this message translates to: /// **'The hub\'s operator policy blocks this action. Check `~/.chain/config.yaml`.'** String get errPermissionDeniedHint; /// No description provided for @errFailedPrecondition. /// /// In en, this message translates to: /// **'Setup issue blocked this.'** String get errFailedPrecondition; /// No description provided for @errFailedPreconditionHint. /// /// In en, this message translates to: /// **'The hub couldn\'t proceed because something it needs isn\'t ready. The detail below explains what.'** String get errFailedPreconditionHint; /// No description provided for @errInternal. /// /// In en, this message translates to: /// **'Unexpected internal error.'** String get errInternal; /// No description provided for @errInternalHint. /// /// In en, this message translates to: /// **'Check the hub logs at `~/.chain/logs/`. If this repeats, please report it.'** String get errInternalHint; /// No description provided for @errUnavailable. /// /// In en, this message translates to: /// **'Hub not reachable.'** String get errUnavailable; /// No description provided for @errUnavailableHint. /// /// In en, this message translates to: /// **'Make sure `chain serve` (or `chain daemon start`) is running and the daemon endpoint matches Studio\'s settings.'** String get errUnavailableHint; /// No description provided for @errUnauthenticated. /// /// In en, this message translates to: /// **'Authentication required.'** String get errUnauthenticated; /// No description provided for @errUnauthenticatedHint. /// /// In en, this message translates to: /// **'Set `CHAIN_REGISTRY_TOKEN` or sign in through Settings before retrying.'** String get errUnauthenticatedHint; /// No description provided for @errCopyDetail. /// /// In en, this message translates to: /// **'Copy detail'** String get errCopyDetail; /// No description provided for @errDetailCopied. /// /// In en, this message translates to: /// **'Detail copied to clipboard.'** String get errDetailCopied; /// No description provided for @flowsOutputUnknown. /// /// In en, this message translates to: /// **'Output payload variant not recognised.'** String get flowsOutputUnknown; /// No description provided for @flowsOutputBytesUnknownMime. /// /// In en, this message translates to: /// **'binary'** String get flowsOutputBytesUnknownMime; /// No description provided for @flowsOutputSaveAs. /// /// In en, this message translates to: /// **'Save as…'** String get flowsOutputSaveAs; /// No description provided for @flowsOutputSaveAsTitle. /// /// In en, this message translates to: /// **'Save flow output'** String get flowsOutputSaveAsTitle; /// No description provided for @flowsOutputSavedAt. /// /// In en, this message translates to: /// **'Saved to {path}'** String flowsOutputSavedAt(String path); /// No description provided for @flowsOutputSaveFailed. /// /// In en, this message translates to: /// **'Save failed: {error}'** String flowsOutputSaveFailed(String error); /// No description provided for @flowsOutputOpen. /// /// In en, this message translates to: /// **'Open'** String get flowsOutputOpen; /// No description provided for @flowsOutputOpenFailed. /// /// In en, this message translates to: /// **'Open failed: {error}'** String flowsOutputOpenFailed(String error); /// No description provided for @approvalsTitle. /// /// In en, this message translates to: /// **'Approvals'** String get approvalsTitle; /// No description provided for @approvalsTabPending. /// /// In en, this message translates to: /// **'Pending'** String get approvalsTabPending; /// No description provided for @approvalsTabHistory. /// /// In en, this message translates to: /// **'History'** String get approvalsTabHistory; /// No description provided for @approvalsInboxZero. /// /// In en, this message translates to: /// **'Inbox zero'** String get approvalsInboxZero; /// No description provided for @approvalsInboxHint. /// /// In en, this message translates to: /// **'All caught up. New `system.approval@^0` steps land here automatically.'** String get approvalsInboxHint; /// No description provided for @approvalsReloadTooltip. /// /// In en, this message translates to: /// **'Reload'** String get approvalsReloadTooltip; /// No description provided for @approvalsPillPending. /// /// In en, this message translates to: /// **'pending'** String get approvalsPillPending; /// No description provided for @approvalsPillApproved. /// /// In en, this message translates to: /// **'approved'** String get approvalsPillApproved; /// No description provided for @approvalsPillRejected. /// /// In en, this message translates to: /// **'rejected'** String get approvalsPillRejected; /// No description provided for @approvalsPillExpired. /// /// In en, this message translates to: /// **'expired'** String get approvalsPillExpired; /// No description provided for @approvalsPayloadPreview. /// /// In en, this message translates to: /// **'PAYLOAD PREVIEW'** String get approvalsPayloadPreview; /// No description provided for @approvalsApproveButton. /// /// In en, this message translates to: /// **'Approve'** String get approvalsApproveButton; /// No description provided for @approvalsRejectButton. /// /// In en, this message translates to: /// **'Reject'** String get approvalsRejectButton; /// No description provided for @approvalsRejectDialogTitle. /// /// In en, this message translates to: /// **'Reject approval'** String get approvalsRejectDialogTitle; /// No description provided for @approvalsRejectReasonLabel. /// /// In en, this message translates to: /// **'Reason (recorded in audit log)'** String get approvalsRejectReasonLabel; /// No description provided for @approvalsApprovedToast. /// /// In en, this message translates to: /// **'approved · {flow} › {step}'** String approvalsApprovedToast(String flow, String step); /// No description provided for @approvalsRejectedToast. /// /// In en, this message translates to: /// **'rejected · {flow} › {step}'** String approvalsRejectedToast(String flow, String step); /// No description provided for @approvalsApproveFailed. /// /// In en, this message translates to: /// **'approve failed: {error}'** String approvalsApproveFailed(String error); /// No description provided for @approvalsRejectFailed. /// /// In en, this message translates to: /// **'reject failed: {error}'** String approvalsRejectFailed(String error); /// No description provided for @approvalsHistoryEmpty. /// /// In en, this message translates to: /// **'No history yet'** String get approvalsHistoryEmpty; /// No description provided for @approvalsHistoryEmptyHint. /// /// In en, this message translates to: /// **'Decided approvals (approved / rejected / expired) appear here.\nThe audit log keeps the full hash-chained record.'** String get approvalsHistoryEmptyHint; /// No description provided for @approvalsDialogDecided. /// /// In en, this message translates to: /// **'decided'** String get approvalsDialogDecided; /// No description provided for @approvalsDialogCreated. /// /// In en, this message translates to: /// **'created'** String get approvalsDialogCreated; /// No description provided for @approvalsDialogReason. /// /// In en, this message translates to: /// **'reason'** String get approvalsDialogReason; /// No description provided for @approvalsDialogPrompt. /// /// In en, this message translates to: /// **'PROMPT'** String get approvalsDialogPrompt; /// No description provided for @approvalsExpiresIn. /// /// In en, this message translates to: /// **'{minutes}m'** String approvalsExpiresIn(int minutes); /// No description provided for @approvalsExpiresInHours. /// /// In en, this message translates to: /// **'{hours}h'** String approvalsExpiresInHours(int hours); /// No description provided for @doctorTitle. /// /// In en, this message translates to: /// **'Doctor'** String get doctorTitle; /// No description provided for @doctorSummaryModules. /// /// In en, this message translates to: /// **'Modules'** String get doctorSummaryModules; /// No description provided for @doctorSummaryApprovals. /// /// In en, this message translates to: /// **'Approvals'** String get doctorSummaryApprovals; /// No description provided for @doctorSummaryAudit. /// /// In en, this message translates to: /// **'Audit'** String get doctorSummaryAudit; /// No description provided for @doctorSummaryServices. /// /// In en, this message translates to: /// **'Services'** String get doctorSummaryServices; /// No description provided for @doctorSummaryCapabilities. /// /// In en, this message translates to: /// **'{n} capabilities'** String doctorSummaryCapabilities(int n); /// No description provided for @doctorSummaryPending. /// /// In en, this message translates to: /// **'pending'** String get doctorSummaryPending; /// No description provided for @doctorSummaryChain. /// /// In en, this message translates to: /// **'{verified}/{total} chain'** String doctorSummaryChain(int verified, int total); /// No description provided for @doctorSummaryDeclared. /// /// In en, this message translates to: /// **'declared'** String get doctorSummaryDeclared; /// No description provided for @doctorModulesPanelSummary. /// /// In en, this message translates to: /// **'{n} modules · {m} capabilities'** String doctorModulesPanelSummary(int n, int m); /// No description provided for @doctorApprovalsNone. /// /// In en, this message translates to: /// **'No pending approvals'** String get doctorApprovalsNone; /// No description provided for @doctorApprovalsCount. /// /// In en, this message translates to: /// **'{n, plural, =1{1 approval awaiting review} other{{n} approvals awaiting review}}'** String doctorApprovalsCount(int n); /// No description provided for @doctorApprovalsAttentionPill. /// /// In en, this message translates to: /// **'attention'** String get doctorApprovalsAttentionPill; /// No description provided for @doctorServicesEmpty. /// /// In en, this message translates to: /// **'No host services declared'** String get doctorServicesEmpty; /// No description provided for @doctorServicesEmptyHint. /// /// In en, this message translates to: /// **'add to ~/.chain/config.yaml under services:'** String get doctorServicesEmptyHint; /// No description provided for @doctorPillLoaded. /// /// In en, this message translates to: /// **'loaded'** String get doctorPillLoaded; /// No description provided for @doctorPillEmpty. /// /// In en, this message translates to: /// **'empty'** String get doctorPillEmpty; /// No description provided for @doctorRecheckTooltip. /// /// In en, this message translates to: /// **'Re-check'** String get doctorRecheckTooltip; /// No description provided for @doctorEventLogSection. /// /// In en, this message translates to: /// **'Event log'** String get doctorEventLogSection; /// No description provided for @doctorModulesApprovalsSection. /// /// In en, this message translates to: /// **'Modules & approvals'** String get doctorModulesApprovalsSection; /// No description provided for @doctorHostServicesSection. /// /// In en, this message translates to: /// **'Host services'** String get doctorHostServicesSection; /// No description provided for @doctorDaemonFilesSection. /// /// In en, this message translates to: /// **'Daemon files'** String get doctorDaemonFilesSection; /// No description provided for @doctorDaemonControlSection. /// /// In en, this message translates to: /// **'Daemon control'** String get doctorDaemonControlSection; /// No description provided for @doctorChainIntact. /// /// In en, this message translates to: /// **'Hash chain intact'** String get doctorChainIntact; /// No description provided for @doctorChainIntactDetail. /// /// In en, this message translates to: /// **'{n} events · prev_event_sha256 verified end-to-end'** String doctorChainIntactDetail(int n); /// No description provided for @doctorChainTampered. /// /// In en, this message translates to: /// **'Tampering detected'** String get doctorChainTampered; /// No description provided for @doctorChainTamperedDetail. /// /// In en, this message translates to: /// **'{verified} of {total} verified before mismatch at {id}'** String doctorChainTamperedDetail(int verified, int total, String id); /// No description provided for @doctorChainPillOk. /// /// In en, this message translates to: /// **'WORM-1'** String get doctorChainPillOk; /// No description provided for @doctorChainPillTamper. /// /// In en, this message translates to: /// **'TAMPER'** String get doctorChainPillTamper; /// No description provided for @doctorVerifyNow. /// /// In en, this message translates to: /// **'Verify now'** String get doctorVerifyNow; /// No description provided for @doctorRestart. /// /// In en, this message translates to: /// **'Restart'** String get doctorRestart; /// No description provided for @doctorStart. /// /// In en, this message translates to: /// **'Start'** String get doctorStart; /// No description provided for @doctorStop. /// /// In en, this message translates to: /// **'Stop'** String get doctorStop; /// No description provided for @doctorStatusAction. /// /// In en, this message translates to: /// **'Status'** String get doctorStatusAction; /// No description provided for @doctorRunningOn. /// /// In en, this message translates to: /// **'Running on {name}: {endpoint}'** String doctorRunningOn(String name, String endpoint); /// No description provided for @doctorStoppedOn. /// /// In en, this message translates to: /// **'{name} daemon stopped'** String doctorStoppedOn(String name); /// No description provided for @doctorStatusUnknown. /// /// In en, this message translates to: /// **'Daemon status: …'** String get doctorStatusUnknown; /// No description provided for @doctorPillRunning. /// /// In en, this message translates to: /// **'running'** String get doctorPillRunning; /// No description provided for @doctorPillStopped. /// /// In en, this message translates to: /// **'stopped'** String get doctorPillStopped; /// No description provided for @doctorDaemonControlHint. /// /// In en, this message translates to: /// **'Studio shells out to the platform binary — mirrors `chain daemon …` exactly so the CLI and UI stay in lockstep.'** String get doctorDaemonControlHint; /// No description provided for @doctorDaemonControlWorking. /// /// In en, this message translates to: /// **'Working…'** String get doctorDaemonControlWorking; /// No description provided for @doctorPathLog. /// /// In en, this message translates to: /// **'Log'** String get doctorPathLog; /// No description provided for @doctorPathConfig. /// /// In en, this message translates to: /// **'Config'** String get doctorPathConfig; /// No description provided for @doctorPathDb. /// /// In en, this message translates to: /// **'Audit DB'** String get doctorPathDb; /// No description provided for @doctorPathModules. /// /// In en, this message translates to: /// **'Modules dir'** String get doctorPathModules; /// No description provided for @doctorPathFlows. /// /// In en, this message translates to: /// **'Flows dir'** String get doctorPathFlows; /// No description provided for @doctorPathPid. /// /// In en, this message translates to: /// **'PID file'** String get doctorPathPid; /// No description provided for @doctorPathsEmpty. /// /// In en, this message translates to: /// **'Daemon did not report file paths. Update the running hub via `chain daemon restart`.'** String get doctorPathsEmpty; /// No description provided for @doctorOpenError. /// /// In en, this message translates to: /// **'Could not open: {detail}'** String doctorOpenError(String detail); /// No description provided for @doctorUpdateAvailable. /// /// In en, this message translates to: /// **'Update available — {version}'** String doctorUpdateAvailable(String version); /// No description provided for @doctorUpdateBody. /// /// In en, this message translates to: /// **'Channel {channel} now offers {version}. Apply via the button — Studio shells out to `chain update apply --channel {channel}`.'** String doctorUpdateBody(String channel, String version); /// No description provided for @doctorUpdateUnreachable. /// /// In en, this message translates to: /// **'Release host unreachable'** String get doctorUpdateUnreachable; /// No description provided for @doctorUpdateUnreachableBody. /// /// In en, this message translates to: /// **'Could not contact the release feed for {channel}.'** String doctorUpdateUnreachableBody(String channel); /// No description provided for @doctorReleaseNotes. /// /// In en, this message translates to: /// **'notes: {url}'** String doctorReleaseNotes(String url); /// No description provided for @doctorPillNew. /// /// In en, this message translates to: /// **'new'** String get doctorPillNew; /// No description provided for @doctorPillOffline. /// /// In en, this message translates to: /// **'offline'** String get doctorPillOffline; /// No description provided for @doctorApplyUpdate. /// /// In en, this message translates to: /// **'Apply update'** String get doctorApplyUpdate; /// No description provided for @doctorApplying. /// /// In en, this message translates to: /// **'Applying…'** String get doctorApplying; /// No description provided for @doctorApplyDone. /// /// In en, this message translates to: /// **'Update applied. Restart Studio to see the new daemon version.'** String get doctorApplyDone; /// No description provided for @mcpHeader. /// /// In en, this message translates to: /// **'MCP CLIENTS'** String get mcpHeader; /// No description provided for @mcpHint. /// /// In en, this message translates to: /// **'External MCP servers federate their tools as `mcp..` capabilities. Configure once, see them in the Store.'** String get mcpHint; /// No description provided for @mcpEmpty. /// /// In en, this message translates to: /// **'No MCP servers configured. Click + to add one.'** String get mcpEmpty; /// No description provided for @n8nHeader. /// /// In en, this message translates to: /// **'N8N ENDPOINTS'** String get n8nHeader; /// No description provided for @n8nHint. /// /// In en, this message translates to: /// **'Active n8n workflows surface as `n8n..` capabilities. Configure once, see them in the Store.'** String get n8nHint; /// No description provided for @n8nEmpty. /// /// In en, this message translates to: /// **'No n8n endpoints configured. Click + to add one.'** String get n8nEmpty; /// No description provided for @hubUnreachable. /// /// In en, this message translates to: /// **'Hub unreachable'** String get hubUnreachable; /// No description provided for @hubUnreachableHint. /// /// In en, this message translates to: /// **'Start the hub with `chain serve`.'** String get hubUnreachableHint; /// No description provided for @languageEnglish. /// /// In en, this message translates to: /// **'English'** String get languageEnglish; /// No description provided for @languageGerman. /// /// In en, this message translates to: /// **'Deutsch'** String get languageGerman; /// No description provided for @searchHint. /// /// In en, this message translates to: /// **'Jump anywhere — modules, store, flows, pages…'** String get searchHint; /// No description provided for @searchIndexing. /// /// In en, this message translates to: /// **'Indexing…'** String get searchIndexing; /// No description provided for @searchNoMatches. /// /// In en, this message translates to: /// **'No matches.'** String get searchNoMatches; /// No description provided for @searchHintNavigate. /// /// In en, this message translates to: /// **'↑↓ navigate'** String get searchHintNavigate; /// No description provided for @searchHintOpen. /// /// In en, this message translates to: /// **'enter open'** String get searchHintOpen; /// No description provided for @searchHintClose. /// /// In en, this message translates to: /// **'esc close'** String get searchHintClose; /// No description provided for @searchGroupPages. /// /// In en, this message translates to: /// **'Pages'** String get searchGroupPages; /// No description provided for @searchGroupModules. /// /// In en, this message translates to: /// **'Modules'** String get searchGroupModules; /// No description provided for @searchGroupStore. /// /// In en, this message translates to: /// **'Store'** String get searchGroupStore; /// No description provided for @searchGroupFlows. /// /// In en, this message translates to: /// **'Flows'** String get searchGroupFlows; /// No description provided for @searchSettingsLabel. /// /// In en, this message translates to: /// **'Settings'** String get searchSettingsLabel; /// No description provided for @searchPageHint. /// /// In en, this message translates to: /// **'page · ⌘{n}'** String searchPageHint(int n); /// No description provided for @searchSettingsHint. /// /// In en, this message translates to: /// **'hub endpoint, channels, system AI · ⌘;'** String get searchSettingsHint; /// No description provided for @searchInstalledModuleHint. /// /// In en, this message translates to: /// **'installed module · v{version}'** String searchInstalledModuleHint(String version); /// No description provided for @searchStoreUncategorized. /// /// In en, this message translates to: /// **'uncategorized'** String get searchStoreUncategorized; /// No description provided for @searchStoreHintWithTagline. /// /// In en, this message translates to: /// **'store · {tagline}'** String searchStoreHintWithTagline(String tagline); /// No description provided for @searchStoreHintWithCategory. /// /// In en, this message translates to: /// **'store · {category}'** String searchStoreHintWithCategory(String category); /// No description provided for @searchSavedFlowHint. /// /// In en, this message translates to: /// **'saved flow'** String get searchSavedFlowHint; /// No description provided for @systemAiTitle. /// /// In en, this message translates to: /// **'System AI'** String get systemAiTitle; /// No description provided for @systemAiIntro. /// /// In en, this message translates to: /// **'The hub-internal LLM the platform itself uses for inline failure explanations and operator help. Off by default; configure here. See docs/architecture/system-ai.md for what crosses the wire.'** String get systemAiIntro; /// No description provided for @systemAiProviderLabel. /// /// In en, this message translates to: /// **'Provider'** String get systemAiProviderLabel; /// No description provided for @systemAiEndpointLabel. /// /// In en, this message translates to: /// **'Endpoint URL (up to /v1)'** String get systemAiEndpointLabel; /// No description provided for @systemAiApiKeyRequired. /// /// In en, this message translates to: /// **'API key env var (required)'** String get systemAiApiKeyRequired; /// No description provided for @systemAiApiKeyOptional. /// /// In en, this message translates to: /// **'API key env var (optional)'** String get systemAiApiKeyOptional; /// No description provided for @systemAiApiKeyDisclaimer. /// /// In en, this message translates to: /// **'Studio never reads or stores the key value — only its env-var name. The hub reads `\${name}` at request time.'** String systemAiApiKeyDisclaimer(String name); /// No description provided for @systemAiTestConnection. /// /// In en, this message translates to: /// **'Test connection'** String get systemAiTestConnection; /// No description provided for @systemAiTesting. /// /// In en, this message translates to: /// **'Testing…'** String get systemAiTesting; /// No description provided for @systemAiSave. /// /// In en, this message translates to: /// **'Save'** String get systemAiSave; /// No description provided for @systemAiPrivacyHeader. /// /// In en, this message translates to: /// **'PRIVACY MODE'** String get systemAiPrivacyHeader; /// No description provided for @systemAiPrivacyOffLabel. /// /// In en, this message translates to: /// **'Off'** String get systemAiPrivacyOffLabel; /// No description provided for @systemAiPrivacyOffDesc. /// /// In en, this message translates to: /// **'Feature disabled. No requests leave the hub.'** String get systemAiPrivacyOffDesc; /// No description provided for @systemAiPrivacyRedactedLabel. /// /// In en, this message translates to: /// **'Redacted'** String get systemAiPrivacyRedactedLabel; /// No description provided for @systemAiPrivacyRedactedDesc. /// /// In en, this message translates to: /// **'Only event_type / error / module names. KRITIS-friendly default.'** String get systemAiPrivacyRedactedDesc; /// No description provided for @systemAiPrivacyFullLabel. /// /// In en, this message translates to: /// **'Full'** String get systemAiPrivacyFullLabel; /// No description provided for @systemAiPrivacyFullDesc. /// /// In en, this message translates to: /// **'Includes the audit detail JSON (hash-only — no raw payloads).'** String get systemAiPrivacyFullDesc; /// No description provided for @systemAiConnectionOk. /// /// In en, this message translates to: /// **'Connection ok'** String get systemAiConnectionOk; /// No description provided for @systemAiConnectionFailed. /// /// In en, this message translates to: /// **'Connection failed'** String get systemAiConnectionFailed; /// No description provided for @systemAiReplyPrefix. /// /// In en, this message translates to: /// **'Reply: {text}'** String systemAiReplyPrefix(String text); /// No description provided for @systemAiModelLabel. /// /// In en, this message translates to: /// **'Model (required)'** String get systemAiModelLabel; /// No description provided for @systemAiModelHintFallback. /// /// In en, this message translates to: /// **'model identifier the provider expects'** String get systemAiModelHintFallback; /// No description provided for @systemAiModelHelperBase. /// /// In en, this message translates to: /// **'Required: pick from the list (Refresh) or type one.'** String get systemAiModelHelperBase; /// No description provided for @systemAiModelHelperOllama. /// /// In en, this message translates to: /// **'Required: pick from the list (Refresh) or type one. Use Pull to download from Ollama.'** String get systemAiModelHelperOllama; /// No description provided for @systemAiRefresh. /// /// In en, this message translates to: /// **'Refresh'** String get systemAiRefresh; /// No description provided for @systemAiPull. /// /// In en, this message translates to: /// **'Pull'** String get systemAiPull; /// No description provided for @systemAiPulling. /// /// In en, this message translates to: /// **'Pulling…'** String get systemAiPulling; /// No description provided for @systemAiCouldNotListModels. /// /// In en, this message translates to: /// **'Could not list models: {error}'** String systemAiCouldNotListModels(String error); /// No description provided for @systemAiNoModelsOllama. /// /// In en, this message translates to: /// **'No models on the Ollama server yet. Type one above and click Pull.'** String get systemAiNoModelsOllama; /// No description provided for @systemAiNoModelsGeneric. /// /// In en, this message translates to: /// **'Provider returned no models.'** String get systemAiNoModelsGeneric; /// No description provided for @systemAiSuitabilityRecommended. /// /// In en, this message translates to: /// **'recommended'** String get systemAiSuitabilityRecommended; /// No description provided for @systemAiSuitabilityBalanced. /// /// In en, this message translates to: /// **'balanced'** String get systemAiSuitabilityBalanced; /// No description provided for @systemAiSuitabilitySmall. /// /// In en, this message translates to: /// **'small — quality may be limited'** String get systemAiSuitabilitySmall; /// No description provided for @systemAiSuitabilityLarge. /// /// In en, this message translates to: /// **'large — slower'** String get systemAiSuitabilityLarge; /// No description provided for @systemAiSuitabilityHuge. /// /// In en, this message translates to: /// **'huge — likely too slow on a laptop'** String get systemAiSuitabilityHuge; /// No description provided for @systemAiSuitabilityUnknown. /// /// In en, this message translates to: /// **'size unknown'** String get systemAiSuitabilityUnknown; /// No description provided for @systemAiHwDetected. /// /// In en, this message translates to: /// **'Detected: {summary}'** String systemAiHwDetected(String summary); /// No description provided for @systemAiHwReviewed. /// /// In en, this message translates to: /// **' · curation reviewed {date}'** String systemAiHwReviewed(String date); /// No description provided for @systemAiLegendRecommended. /// /// In en, this message translates to: /// **'recommended for this hardware{tier}'** String systemAiLegendRecommended(String tier); /// No description provided for @systemAiLegendBalanced. /// /// In en, this message translates to: /// **'balanced (4-8B)'** String get systemAiLegendBalanced; /// No description provided for @systemAiLegendSmallLarge. /// /// In en, this message translates to: /// **'small <3B / large 9-15B / above hardware'** String get systemAiLegendSmallLarge; /// No description provided for @systemAiLegendHuge. /// /// In en, this message translates to: /// **'huge >15B'** String get systemAiLegendHuge; /// No description provided for @systemAiLegendUnknown. /// /// In en, this message translates to: /// **'size unknown'** String get systemAiLegendUnknown; /// No description provided for @systemAiCacheRow. /// /// In en, this message translates to: /// **'Cache: {n} cached {n, plural, =1{explanation} other{explanations}}. Identical prompts hit the cache; switching model or privacy mode flushes automatically.'** String systemAiCacheRow(int n); /// No description provided for @systemAiCacheClear. /// /// In en, this message translates to: /// **'Clear'** String get systemAiCacheClear; /// No description provided for @systemAiCacheClearedToast. /// /// In en, this message translates to: /// **'Cleared {n} cached System-AI explanations.'** String systemAiCacheClearedToast(int n); /// No description provided for @systemAiCacheClearFailed. /// /// In en, this message translates to: /// **'Cache clear failed: {error}'** String systemAiCacheClearFailed(String error); /// No description provided for @systemAiPullEmptyError. /// /// In en, this message translates to: /// **'Type a model id (e.g. gemma3:4b) first.'** String get systemAiPullEmptyError; /// No description provided for @systemAiPullFailedError. /// /// In en, this message translates to: /// **'Pull failed: {error}'** String systemAiPullFailedError(String error); /// No description provided for @storeProvenanceTemporal. /// /// In en, this message translates to: /// **'temporal · {provider}'** String storeProvenanceTemporal(String provider); /// No description provided for @storeSourceTemporal. /// /// In en, this message translates to: /// **'Temporal'** String get storeSourceTemporal; /// No description provided for @navFlowEditor. /// /// In en, this message translates to: /// **'Editor'** String get navFlowEditor; /// No description provided for @flowEditorBackTooltip. /// /// In en, this message translates to: /// **'Back'** String get flowEditorBackTooltip; /// No description provided for @flowEditorNew. /// /// In en, this message translates to: /// **'New flow'** String get flowEditorNew; /// No description provided for @flowEditorSave. /// /// In en, this message translates to: /// **'Save'** String get flowEditorSave; /// No description provided for @flowEditorRun. /// /// In en, this message translates to: /// **'Run'** String get flowEditorRun; /// No description provided for @flowEditorRefresh. /// /// In en, this message translates to: /// **'Refresh file list'** String get flowEditorRefresh; /// No description provided for @flowEditorRunOutput. /// /// In en, this message translates to: /// **'RUN OUTPUT'** String get flowEditorRunOutput; /// No description provided for @flowEditorEmptyTitle. /// /// In en, this message translates to: /// **'No flow open'** String get flowEditorEmptyTitle; /// No description provided for @flowEditorEmptyBody. /// /// In en, this message translates to: /// **'Pick one from the left, or click New flow to start a fresh one.'** String get flowEditorEmptyBody; /// No description provided for @flowEditorListEmptyTitle. /// /// In en, this message translates to: /// **'No saved flows'** String get flowEditorListEmptyTitle; /// No description provided for @flowEditorListEmptyBody. /// /// In en, this message translates to: /// **'Click New flow to scaffold one from a template.'** String get flowEditorListEmptyBody; /// No description provided for @flowEditorDiscardTitle. /// /// In en, this message translates to: /// **'Discard unsaved changes?'** String get flowEditorDiscardTitle; /// No description provided for @flowEditorDiscardBody. /// /// In en, this message translates to: /// **'Switching files will throw away the edits you haven\'t saved.'** String get flowEditorDiscardBody; /// No description provided for @flowEditorDiscardKeep. /// /// In en, this message translates to: /// **'Keep editing'** String get flowEditorDiscardKeep; /// No description provided for @flowEditorDiscardThrow. /// /// In en, this message translates to: /// **'Throw away'** String get flowEditorDiscardThrow; /// No description provided for @flowEditorNewDialogTitle. /// /// In en, this message translates to: /// **'New flow'** String get flowEditorNewDialogTitle; /// No description provided for @flowEditorNewDialogLabel. /// /// In en, this message translates to: /// **'Flow name'** String get flowEditorNewDialogLabel; /// No description provided for @flowEditorNewDialogHelper. /// /// In en, this message translates to: /// **'lowercase letters, digits, hyphen, underscore'** String get flowEditorNewDialogHelper; /// No description provided for @flowEditorNewDialogCancel. /// /// In en, this message translates to: /// **'Cancel'** String get flowEditorNewDialogCancel; /// No description provided for @flowEditorNewDialogCreate. /// /// In en, this message translates to: /// **'Create'** String get flowEditorNewDialogCreate; /// No description provided for @flowEditorNewTemplateComment. /// /// In en, this message translates to: /// **'Generated by Studio\'s Flow editor. Edit, save, run.'** String flowEditorNewTemplateComment(String name); /// No description provided for @flowEditorAlreadyExists. /// /// In en, this message translates to: /// **'A flow named \"{name}\" already exists.'** String flowEditorAlreadyExists(String name); /// No description provided for @buttonView. /// /// In en, this message translates to: /// **'View'** String get buttonView; /// No description provided for @logViewerTitle. /// /// In en, this message translates to: /// **'{title} — last {count} lines'** String logViewerTitle(String title, int count); /// No description provided for @logViewerEmpty. /// /// In en, this message translates to: /// **'Log file is empty or does not exist yet.'** String get logViewerEmpty; /// No description provided for @logViewerCopyAll. /// /// In en, this message translates to: /// **'Copy all'** String get logViewerCopyAll; /// No description provided for @logViewerOpenExternal. /// /// In en, this message translates to: /// **'Open in default editor'** String get logViewerOpenExternal; /// No description provided for @logViewerLineCount. /// /// In en, this message translates to: /// **'{count, plural, =1{1 line} other{{count} lines}}'** String logViewerLineCount(int count); /// No description provided for @doctorPathStudioErrors. /// /// In en, this message translates to: /// **'Studio errors'** String get doctorPathStudioErrors; /// No description provided for @settingsCategoryGeneral. /// /// In en, this message translates to: /// **'General'** String get settingsCategoryGeneral; /// No description provided for @settingsCategoryAppearance. /// /// In en, this message translates to: /// **'Appearance'** String get settingsCategoryAppearance; /// No description provided for @settingsCategoryAi. /// /// In en, this message translates to: /// **'System AI'** String get settingsCategoryAi; /// No description provided for @settingsCategoryIntegrations. /// /// In en, this message translates to: /// **'Integrations'** String get settingsCategoryIntegrations; /// No description provided for @settingsCategorySecurity. /// /// In en, this message translates to: /// **'Security'** String get settingsCategorySecurity; /// No description provided for @settingsCategoryMaintenance. /// /// In en, this message translates to: /// **'Maintenance'** String get settingsCategoryMaintenance; /// No description provided for @settingsAiPanelTitle. /// /// In en, this message translates to: /// **'System AI'** String get settingsAiPanelTitle; /// No description provided for @settingsAiPanelBody. /// /// In en, this message translates to: /// **'Operator-managed LLM endpoint used by Studio for the AI helpers (system-ai-edit, install-suggest, doctor-summary). No flow ever calls this; modules speak to their own LLM.'** String get settingsAiPanelBody; /// No description provided for @settingsIntegrationsPanelTitle. /// /// In en, this message translates to: /// **'Integrations'** String get settingsIntegrationsPanelTitle; /// No description provided for @settingsIntegrationsPanelBody. /// /// In en, this message translates to: /// **'External tool servers the hub federates capabilities from. MCP servers expose tool-shaped endpoints; n8n endpoints expose hosted workflows.'** String get settingsIntegrationsPanelBody; /// No description provided for @settingsSecurityPanelTitle. /// /// In en, this message translates to: /// **'Security & credentials'** String get settingsSecurityPanelTitle; /// No description provided for @settingsSecurityPanelBody. /// /// In en, this message translates to: /// **'Tokens the hub holds on the operator\'s behalf. Stored in ~/.chain/ with mode 0600; never sent in telemetry.'** String get settingsSecurityPanelBody; /// No description provided for @settingsMaintenancePanelTitle. /// /// In en, this message translates to: /// **'Maintenance'** String get settingsMaintenancePanelTitle; /// No description provided for @settingsMaintenancePanelBody. /// /// In en, this message translates to: /// **'Destructive operations gated behind explicit confirm dialogs. Use when re-pilot-testing or debugging.'** String get settingsMaintenancePanelBody; /// No description provided for @tooltipMoveUp. /// /// In en, this message translates to: /// **'Move up'** String get tooltipMoveUp; /// No description provided for @tooltipMoveDown. /// /// In en, this message translates to: /// **'Move down'** String get tooltipMoveDown; /// No description provided for @tooltipRemove. /// /// In en, this message translates to: /// **'Remove'** String get tooltipRemove; /// No description provided for @daemonActionEnableAutostart. /// /// In en, this message translates to: /// **'enable autostart'** String get daemonActionEnableAutostart; /// No description provided for @daemonActionDisableAutostart. /// /// In en, this message translates to: /// **'disable autostart'** String get daemonActionDisableAutostart; /// No description provided for @daemonActionRestart. /// /// In en, this message translates to: /// **'daemon restart'** String get daemonActionRestart; /// No description provided for @daemonActionStart. /// /// In en, this message translates to: /// **'daemon start'** String get daemonActionStart; /// No description provided for @daemonActionStop. /// /// In en, this message translates to: /// **'daemon stop'** String get daemonActionStop; /// No description provided for @daemonActionStatus. /// /// In en, this message translates to: /// **'daemon status'** String get daemonActionStatus; /// No description provided for @daemonActionResultOk. /// /// In en, this message translates to: /// **'OK · {label}'** String daemonActionResultOk(String label); /// No description provided for @daemonActionResultFailed. /// /// In en, this message translates to: /// **'Failed · {label}'** String daemonActionResultFailed(String label); /// No description provided for @addSourceTitle. /// /// In en, this message translates to: /// **'Add module source'** String get addSourceTitle; /// No description provided for @addSourceIntro. /// /// In en, this message translates to: /// **'`{capability}` is not in the public store. Point the hub at a `.fai` bundle URL or a local bundle path; the hub downloads, verifies (sha256 + signature) and installs it.'** String addSourceIntro(String capability); /// No description provided for @addSourceField. /// /// In en, this message translates to: /// **'URL or path to .fai bundle'** String get addSourceField; /// No description provided for @addSourceHint. /// /// In en, this message translates to: /// **'https://git.flemming.ai/your-org/your-module/releases/download/v0.1.0/foo-0.1.0.fai'** String get addSourceHint; /// No description provided for @addSourceHowItWorksTitle. /// /// In en, this message translates to: /// **'How private modules work'** String get addSourceHowItWorksTitle; /// No description provided for @addSourceHowItWorksBody. /// /// In en, this message translates to: /// **'A module is a directory with a module.yaml + the WASM artifact. To share it: pack it (`chain pack `) and host the resulting `.fai` bundle anywhere (your own Forgejo / GitHub / S3). The hub installs by URL and verifies the signature against its trust store.\n\nDeveloping locally? Use the CLI — Studio cannot install from an unpacked directory (yet):'** String get addSourceHowItWorksBody; /// No description provided for @addSourceCliExample. /// /// In en, this message translates to: /// **'chain install --link /path/to/module'** String get addSourceCliExample; /// No description provided for @addSourceInstallButton. /// /// In en, this message translates to: /// **'Install'** String get addSourceInstallButton; /// No description provided for @addSourceCancel. /// /// In en, this message translates to: /// **'Cancel'** String get addSourceCancel; /// No description provided for @installFailed. /// /// In en, this message translates to: /// **'Install failed: {error}'** String installFailed(String error); /// No description provided for @welcomeHubDownTitle. /// /// In en, this message translates to: /// **'The hub isn\'t running yet'** String get welcomeHubDownTitle; /// No description provided for @welcomeHubDownBody. /// /// In en, this message translates to: /// **'Studio talks to a local hub — the engine that loads modules and runs flows. It isn\'t reachable right now. Start it to begin.'** String get welcomeHubDownBody; /// No description provided for @welcomeHubDownStart. /// /// In en, this message translates to: /// **'Start hub'** String get welcomeHubDownStart; /// No description provided for @welcomeHubDownStarting. /// /// In en, this message translates to: /// **'Starting…'** String get welcomeHubDownStarting; /// No description provided for @welcomeHubDownDocsLink. /// /// In en, this message translates to: /// **'Can\'t start it? Read the getting-started guide'** String get welcomeHubDownDocsLink; /// No description provided for @welcomeHubDownEndpoint. /// /// In en, this message translates to: /// **'Endpoint: {endpoint}'** String welcomeHubDownEndpoint(String endpoint); /// No description provided for @daemonStartRequested. /// /// In en, this message translates to: /// **'Daemon start requested. Reconnecting…'** String get daemonStartRequested; /// No description provided for @daemonStartFailed. /// /// In en, this message translates to: /// **'Could not start daemon: {detail}'** String daemonStartFailed(String detail); /// No description provided for @chainBinaryNotFound. /// /// In en, this message translates to: /// **'Could not find the `chain` program on this machine.'** String get chainBinaryNotFound; /// No description provided for @chainBinaryNotFoundHint. /// /// In en, this message translates to: /// **'Install the Ch∆In platform, or point Studio at an existing `chain` binary.'** String get chainBinaryNotFoundHint; /// No description provided for @chainBinaryLocateButton. /// /// In en, this message translates to: /// **'Locate `chain` binary…'** String get chainBinaryLocateButton; /// No description provided for @chainBinaryInstallDocsButton. /// /// In en, this message translates to: /// **'Open install guide'** String get chainBinaryInstallDocsButton; /// No description provided for @chainBinaryPickerTitle. /// /// In en, this message translates to: /// **'Select the `chain` binary'** String get chainBinaryPickerTitle; /// No description provided for @chainBinarySetOk. /// /// In en, this message translates to: /// **'Using `chain` binary at {path}'** String chainBinarySetOk(String path); /// No description provided for @sysAiFixParse. /// /// In en, this message translates to: /// **'The provider sent a response in an unexpected format. Providers that aren\'t OpenAI-compatible may need a translation proxy.'** String get sysAiFixParse; /// No description provided for @sysAiFixUnknown. /// /// In en, this message translates to: /// **'Unexpected failure ({kind}). See the System AI documentation.'** String sysAiFixUnknown(String kind); /// No description provided for @sysAiFixDisabled. /// /// In en, this message translates to: /// **'Configure System AI in Settings (Cmd+,) → System AI panel.'** String get sysAiFixDisabled; /// No description provided for @sysAiFixEnvMissing. /// /// In en, this message translates to: /// **'The API-key environment variable is empty. Set it in your shell, then restart the daemon.'** String get sysAiFixEnvMissing; /// No description provided for @sysAiFixNetwork. /// /// In en, this message translates to: /// **'The hub can\'t reach the configured endpoint. Is your provider running?'** String get sysAiFixNetwork; /// No description provided for @sysAiFixHttp. /// /// In en, this message translates to: /// **'The provider returned a non-2xx status. Verify the endpoint, model name, and API key.'** String get sysAiFixHttp; /// No description provided for @sysAiFixEmptyResponse. /// /// In en, this message translates to: /// **'The provider answered with no content. Try a different model or rephrase the prompt.'** String get sysAiFixEmptyResponse; /// No description provided for @channelSwitchOk. /// /// In en, this message translates to: /// **'Switched active channel to \"{name}\". Daemon restarted.'** String channelSwitchOk(String name); /// No description provided for @channelSwitchFailed. /// /// In en, this message translates to: /// **'Channel switch failed: {detail}'** String channelSwitchFailed(String detail); /// No description provided for @providerDescOllama. /// /// In en, this message translates to: /// **'Local `ollama serve`. Models stay on your machine. No API key needed.'** String get providerDescOllama; /// No description provided for @providerDescOpenai. /// /// In en, this message translates to: /// **'OpenAI hosted API. Requires an API key. Data leaves your machine.'** String get providerDescOpenai; /// No description provided for @providerDescLmstudio. /// /// In en, this message translates to: /// **'Local LM Studio server. Models stay on your machine. No API key needed.'** String get providerDescLmstudio; /// No description provided for @providerDescVllm. /// /// In en, this message translates to: /// **'Self-hosted vLLM or any other OpenAI-compatible server. Endpoint required.'** String get providerDescVllm; /// No description provided for @providerDescCustom. /// /// In en, this message translates to: /// **'Anything else that speaks the OpenAI-compatible chat-completions wire (LiteLLM proxy, internal mirror, …).'** String get providerDescCustom; /// No description provided for @welcomeDocLoadFailedBody. /// /// In en, this message translates to: /// **'Could not load the bundled doc \"{slug}\" ({locale}).\nTried: {attempted}\nUnderlying: {underlying}\nThis usually means the Studio build on disk predates the doc bundle. Rebuild Studio or open the online copy.'** String welcomeDocLoadFailedBody( String slug, String locale, String attempted, String underlying, ); /// No description provided for @hubUnreachableBanner. /// /// In en, this message translates to: /// **'Can\'t reach {endpoint} — open Settings'** String hubUnreachableBanner(String endpoint); /// No description provided for @hubUnreachableOpenSettings. /// /// In en, this message translates to: /// **'Open Settings'** String get hubUnreachableOpenSettings; /// No description provided for @navFederation. /// /// In en, this message translates to: /// **'Federation'** String get navFederation; /// No description provided for @federationTitle. /// /// In en, this message translates to: /// **'Federation'** String get federationTitle; /// No description provided for @federationReloadTooltip. /// /// In en, this message translates to: /// **'Reload satellites'** String get federationReloadTooltip; /// No description provided for @federationAddSatellite. /// /// In en, this message translates to: /// **'Add satellite'** String get federationAddSatellite; /// No description provided for @federationEmptyTitle. /// /// In en, this message translates to: /// **'No satellites connected'** String get federationEmptyTitle; /// No description provided for @federationEmptyHint. /// /// In en, this message translates to: /// **'Connect another hub as a satellite to run capabilities on it. Issue an enrollment token to get started.'** String get federationEmptyHint; /// No description provided for @federationPillConnected. /// /// In en, this message translates to: /// **'connected'** String get federationPillConnected; /// No description provided for @federationRegionNone. /// /// In en, this message translates to: /// **'no region'** String get federationRegionNone; /// No description provided for @federationCapabilities. /// /// In en, this message translates to: /// **'{count} advertised capabilities'** String federationCapabilities(int count); /// No description provided for @federationAddDialogTitle. /// /// In en, this message translates to: /// **'Issue an enrollment token'** String get federationAddDialogTitle; /// No description provided for @federationNameLabel. /// /// In en, this message translates to: /// **'Satellite name'** String get federationNameLabel; /// No description provided for @federationIssueButton. /// /// In en, this message translates to: /// **'Issue'** String get federationIssueButton; /// No description provided for @federationIssueFailed. /// /// In en, this message translates to: /// **'Could not issue token: {error}'** String federationIssueFailed(String error); /// No description provided for @federationEnrollmentTitle. /// /// In en, this message translates to: /// **'Enroll {name}'** String federationEnrollmentTitle(String name); /// No description provided for @federationTokenLabel. /// /// In en, this message translates to: /// **'Bootstrap token (single use)'** String get federationTokenLabel; /// No description provided for @federationConfigLabel. /// /// In en, this message translates to: /// **'Satellite config (paste into the satellite)'** String get federationConfigLabel; /// No description provided for @federationCopied. /// /// In en, this message translates to: /// **'Copied to clipboard'** String get federationCopied; /// No description provided for @federationEnrollmentHint. /// /// In en, this message translates to: /// **'Hand the token to the satellite operator over a secure channel. The bundled CA makes the satellite\'s first connect tamper-proof.'** String get federationEnrollmentHint; } class _AppLocalizationsDelegate extends LocalizationsDelegate { const _AppLocalizationsDelegate(); @override Future load(Locale locale) { return SynchronousFuture(lookupAppLocalizations(locale)); } @override bool isSupported(Locale locale) => ['de', 'en'].contains(locale.languageCode); @override bool shouldReload(_AppLocalizationsDelegate old) => false; } AppLocalizations lookupAppLocalizations(Locale locale) { // Lookup logic when only language code is specified. switch (locale.languageCode) { case 'de': return AppLocalizationsDe(); case 'en': return AppLocalizationsEn(); } throw FlutterError( 'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' 'an issue with the localizations generation tool. Please file an issue ' 'on GitHub with a reproducible sample app and the gen-l10n configuration ' 'that was used.', ); }