Both surfaces showed an indeterminate spinner for the whole install, because the hub only offered a unary call. They now follow HubAdmin/InstallModuleStream: - The store's install dialog shows the phase in plain language, the overall percentage, megabytes while the size is known, and a seconds counter. The counter is the second, independent signal: it keeps running even if the hub goes quiet, which is what tells 'slow' apart from 'stuck'. - The setup wizard shows the same bar per module instead of a spinner inside the button. - New strings in both locales for the phases, the byte line and the elapsed counter. progress_bar_visual_test writes the four waiting states to build/progress/ in either theme, so the result can be judged without launching the desktop app. Writing it turned up a real trap worth recording: awaiting toImage() directly in a widget test leaves the binding waiting forever - the file passed in six seconds, then sat there until the ten-minute timeout failed the whole suite. tester.runAsync() is the fix. Full suite: 186 passed. Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
6733 lines
210 KiB
Dart
6733 lines
210 KiB
Dart
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<AppLocalizations>(context, AppLocalizations);
|
||
}
|
||
|
||
static const LocalizationsDelegate<AppLocalizations> 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<LocalizationsDelegate<dynamic>> localizationsDelegates =
|
||
<LocalizationsDelegate<dynamic>>[
|
||
delegate,
|
||
GlobalMaterialLocalizations.delegate,
|
||
GlobalCupertinoLocalizations.delegate,
|
||
GlobalWidgetsLocalizations.delegate,
|
||
];
|
||
|
||
/// A list of this localizations delegate's supported locales.
|
||
static const List<Locale> supportedLocales = <Locale>[
|
||
Locale('de'),
|
||
Locale('en'),
|
||
];
|
||
|
||
/// No description provided for @errModuleDownload.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Module download failed'**
|
||
String get errModuleDownload;
|
||
|
||
/// No description provided for @errModuleDownloadHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The module\'s bundle URL is unreachable (status code below). The hub is running fine — fix the URL/host or choose another store.'**
|
||
String get errModuleDownloadHint;
|
||
|
||
/// No description provided for @storeFromSource.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'from {store}'**
|
||
String storeFromSource(String store);
|
||
|
||
/// No description provided for @guidedSetupTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Setup assistant'**
|
||
String get guidedSetupTitle;
|
||
|
||
/// No description provided for @guidedSetupIntro.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Answer three questions and Ch∆In assembles a tailored config, module set and starter flow.'**
|
||
String get guidedSetupIntro;
|
||
|
||
/// No description provided for @guidedSetupScenario.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Scenario'**
|
||
String get guidedSetupScenario;
|
||
|
||
/// No description provided for @guidedSetupIntent.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Task'**
|
||
String get guidedSetupIntent;
|
||
|
||
/// No description provided for @guidedSetupTarget.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Where will it run?'**
|
||
String get guidedSetupTarget;
|
||
|
||
/// No description provided for @guidedSetupApproval.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Require a human approval step before the AI step'**
|
||
String get guidedSetupApproval;
|
||
|
||
/// No description provided for @guidedSetupDataLocal.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Data must stay local (air-gapped posture)'**
|
||
String get guidedSetupDataLocal;
|
||
|
||
/// No description provided for @guidedSetupReviewHeading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This is the plan Ch∆In will apply:'**
|
||
String get guidedSetupReviewHeading;
|
||
|
||
/// No description provided for @guidedSetupApply.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Apply setup'**
|
||
String get guidedSetupApply;
|
||
|
||
/// No description provided for @guidedSetupApplied.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Setup applied. Finish with the steps below:'**
|
||
String get guidedSetupApplied;
|
||
|
||
/// No description provided for @guidedSetupBack.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Back'**
|
||
String get guidedSetupBack;
|
||
|
||
/// No description provided for @guidedSetupNext.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Next'**
|
||
String get guidedSetupNext;
|
||
|
||
/// No description provided for @guidedSetupCancel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cancel'**
|
||
String get guidedSetupCancel;
|
||
|
||
/// No description provided for @guidedSetupClose.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Close'**
|
||
String get guidedSetupClose;
|
||
|
||
/// 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 data 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:
|
||
/// **'The program that runs everything. It works right on your machine, needs no extra software, and keeps everything important in a single file.'**
|
||
String get welcomePillarHubBody;
|
||
|
||
/// No description provided for @welcomePillarHubTech.
|
||
///
|
||
/// 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 welcomePillarHubTech;
|
||
|
||
/// 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 building block that does exactly one job — reading text out of documents, say. Every module states up front what it wants to touch; the hub allows nothing more.'**
|
||
String get welcomePillarModuleBody;
|
||
|
||
/// No description provided for @welcomePillarModuleTech.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A small, sandboxed WebAssembly component. Declares the network endpoints, files, and environment variables it touches; the hub enforces the list.'**
|
||
String get welcomePillarModuleTech;
|
||
|
||
/// 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 recipe that connects modules into fixed steps. Inputs go in, steps run in order, the result comes out — and every step is recorded tamper-evidently.'**
|
||
String get welcomePillarFlowBody;
|
||
|
||
/// No description provided for @welcomePillarFlowTech.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A YAML file that chains modules together; every step is recorded in a hash-chained audit log that the Diagnostics page verifies in full.'**
|
||
String get welcomePillarFlowTech;
|
||
|
||
/// No description provided for @welcomePillarTechToggle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'For the technically curious'**
|
||
String get welcomePillarTechToggle;
|
||
|
||
/// 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 makes later edits detectable — and what integrity level WORM-1 does (and does not) provide.'**
|
||
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 @welcomeDocFederationTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Federation'**
|
||
String get welcomeDocFederationTitle;
|
||
|
||
/// No description provided for @welcomeDocFederationBlurb.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Connect other hubs (satellites) so their capabilities become usable here — what a satellite is and how enrolment works.'**
|
||
String get welcomeDocFederationBlurb;
|
||
|
||
/// No description provided for @welcomeDocRunsTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Background runs'**
|
||
String get welcomeDocRunsTitle;
|
||
|
||
/// No description provided for @welcomeDocRunsBlurb.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Flows that keep working in the background — what they are for, how to switch the feature on and monitor the runs.'**
|
||
String get welcomeDocRunsBlurb;
|
||
|
||
/// 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 @errNoStoreEntry.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No store entry provides this capability.'**
|
||
String get errNoStoreEntry;
|
||
|
||
/// No description provided for @errNoStoreEntryHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Three ways to get it: install a local module (chain install --link <path>), add the store that provides it (Settings → Stores), or configure the integration (MCP/n8n) that supplies it. If it was just published, refresh the Store page first.'**
|
||
String get errNoStoreEntryHint;
|
||
|
||
/// 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. The list shows the live state — refresh top right 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:
|
||
/// **'Connect a public tool catalog'**
|
||
String get welcomeChecklistMcp;
|
||
|
||
/// No description provided for @welcomeChecklistMcpHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Connects a public tool catalog (the technical term is MCP) — its capabilities then appear in the Store. Add one there, or 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.\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 @buttonLearnMore.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Learn more'**
|
||
String get buttonLearnMore;
|
||
|
||
/// 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.<name>.<tool> 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.<name>.<workflow_slug> 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 @storeStatusAlphaHelp.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Early version: it works, but it is still evolving and not cleared for regulated production use.'**
|
||
String get storeStatusAlphaHelp;
|
||
|
||
/// No description provided for @storeStatusPublishedHelp.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cleared by the publisher for general use.'**
|
||
String get storeStatusPublishedHelp;
|
||
|
||
/// No description provided for @storeStatusPlannedHelp.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Announced, but not available yet.'**
|
||
String get storeStatusPlannedHelp;
|
||
|
||
/// 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 @storeCategoryDocument.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Document'**
|
||
String get storeCategoryDocument;
|
||
|
||
/// No description provided for @storeCatDocuments.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Documents'**
|
||
String get storeCatDocuments;
|
||
|
||
/// No description provided for @storeCatTextLanguage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Text & Language'**
|
||
String get storeCatTextLanguage;
|
||
|
||
/// No description provided for @storeCatData.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Data & Formats'**
|
||
String get storeCatData;
|
||
|
||
/// No description provided for @storeCatAiLlm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'AI & LLM'**
|
||
String get storeCatAiLlm;
|
||
|
||
/// No description provided for @storeCatWebApi.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Web & APIs'**
|
||
String get storeCatWebApi;
|
||
|
||
/// No description provided for @storeCatAnalysisDomain.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Analysis & Domain'**
|
||
String get storeCatAnalysisDomain;
|
||
|
||
/// No description provided for @storeCatStudioThemes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Studio & Themes'**
|
||
String get storeCatStudioThemes;
|
||
|
||
/// No description provided for @storeCatExamplesDev.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Examples & Dev'**
|
||
String get storeCatExamplesDev;
|
||
|
||
/// No description provided for @storeCatOther.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Other'**
|
||
String get storeCatOther;
|
||
|
||
/// No description provided for @storeSegmentModules.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Modules'**
|
||
String get storeSegmentModules;
|
||
|
||
/// No description provided for @storeSegmentStudio.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Studio & Themes'**
|
||
String get storeSegmentStudio;
|
||
|
||
/// 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 @storesManagerButton.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add store'**
|
||
String get storesManagerButton;
|
||
|
||
/// No description provided for @storesManagerTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Module stores'**
|
||
String get storesManagerTitle;
|
||
|
||
/// No description provided for @storesManagerIntro.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The hub merges the modules from every store below into one index. Add a store\'s index URL to make its modules installable here.'**
|
||
String get storesManagerIntro;
|
||
|
||
/// No description provided for @storesManagerAddSection.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add a store'**
|
||
String get storesManagerAddSection;
|
||
|
||
/// No description provided for @storesManagerNameLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Name'**
|
||
String get storesManagerNameLabel;
|
||
|
||
/// No description provided for @storesManagerUrlLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Index URL (https:// or file://)'**
|
||
String get storesManagerUrlLabel;
|
||
|
||
/// No description provided for @storesManagerAddAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add store'**
|
||
String get storesManagerAddAction;
|
||
|
||
/// No description provided for @storesManagerBundled.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count} modules · bundled'**
|
||
String storesManagerBundled(int count);
|
||
|
||
/// No description provided for @storesManagerModuleCount.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count} modules'**
|
||
String storesManagerModuleCount(int count);
|
||
|
||
/// No description provided for @storesManagerAddFailed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Could not add store'**
|
||
String get storesManagerAddFailed;
|
||
|
||
/// No description provided for @storesManagerRemoveFailed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Could not remove store'**
|
||
String get storesManagerRemoveFailed;
|
||
|
||
/// No description provided for @storesManagerSuggested.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Suggested stores'**
|
||
String get storesManagerSuggested;
|
||
|
||
/// No description provided for @storesManagerAddShort.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add'**
|
||
String get storesManagerAddShort;
|
||
|
||
/// No description provided for @storesManagerPinnedKeyLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pin a signing key (PEM, optional)'**
|
||
String get storesManagerPinnedKeyLabel;
|
||
|
||
/// No description provided for @storesManagerPinnedKeyHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Only modules signed with this key are accepted from this source. Paste the publisher\'s public key (PEM) — used instead of the built-in vendor key.'**
|
||
String get storesManagerPinnedKeyHint;
|
||
|
||
/// No description provided for @storesManagerNotAvailable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Not available yet'**
|
||
String get storesManagerNotAvailable;
|
||
|
||
/// No description provided for @storesManagerNotAvailableHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The provider hasn\'t published this store index yet. It will become installable once they do.'**
|
||
String get storesManagerNotAvailableHint;
|
||
|
||
/// No description provided for @storesSuggestedReclaimDesc.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recl∆Im — modules for law & duty reform-mapping'**
|
||
String get storesSuggestedReclaimDesc;
|
||
|
||
/// No description provided for @storeTodayBadge.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'TODAY'**
|
||
String get storeTodayBadge;
|
||
|
||
/// No description provided for @storeFeaturedBadge.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'FEATURED'**
|
||
String get storeFeaturedBadge;
|
||
|
||
/// 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 @installPhaseResolve.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Looking up the module'**
|
||
String get installPhaseResolve;
|
||
|
||
/// No description provided for @installPhaseDownload.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Downloading'**
|
||
String get installPhaseDownload;
|
||
|
||
/// No description provided for @installPhaseInstall.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Verifying and unpacking'**
|
||
String get installPhaseInstall;
|
||
|
||
/// No description provided for @installPhaseDone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Done'**
|
||
String get installPhaseDone;
|
||
|
||
/// No description provided for @installBytes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{done} of {total} MB'**
|
||
String installBytes(String done, String total);
|
||
|
||
/// No description provided for @installElapsed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{seconds} s elapsed'**
|
||
String installElapsed(int seconds);
|
||
|
||
/// 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 @auditFilterTooltip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Filter events'**
|
||
String get auditFilterTooltip;
|
||
|
||
/// No description provided for @auditClearLogTooltip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear log (local/dev channels only)'**
|
||
String get auditClearLogTooltip;
|
||
|
||
/// No description provided for @auditMoreTooltip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'More actions'**
|
||
String get auditMoreTooltip;
|
||
|
||
/// No description provided for @auditSearchHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search events (flow, step, module, error text …)'**
|
||
String get auditSearchHint;
|
||
|
||
/// No description provided for @auditExportAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Export current view as JSONL …'**
|
||
String get auditExportAction;
|
||
|
||
/// No description provided for @auditExportAllAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Export full log as JSONL …'**
|
||
String get auditExportAllAction;
|
||
|
||
/// No description provided for @auditExportAllNothing.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The log is empty — nothing to export.'**
|
||
String get auditExportAllNothing;
|
||
|
||
/// No description provided for @auditExportNothing.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No events in the current view — nothing to export.'**
|
||
String get auditExportNothing;
|
||
|
||
/// No description provided for @auditExportSaved.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Exported {n} events to {path}'**
|
||
String auditExportSaved(int n, String path);
|
||
|
||
/// No description provided for @auditDevResetAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Development reset: clear log … (local/dev only)'**
|
||
String get auditDevResetAction;
|
||
|
||
/// 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 @auditClearReviewerHelper.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recorded as an unchecked claim (prefix \"unverified:\") — the hub stores this name as sent.'**
|
||
String get auditClearReviewerHelper;
|
||
|
||
/// 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 <capability-name> 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 <name> <flow.yaml> 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 .chain 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 @authPolicyHeader.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'HUB ACCESS POLICY'**
|
||
String get authPolicyHeader;
|
||
|
||
/// No description provided for @authPolicyBlurb.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'How the hub checks incoming calls: the active validator, the tokens and their scope grants. Secrets stay in environment variables — only their names appear here.'**
|
||
String get authPolicyBlurb;
|
||
|
||
/// No description provided for @authPolicyValidatorStatic.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Validator: static token list'**
|
||
String get authPolicyValidatorStatic;
|
||
|
||
/// No description provided for @authPolicyValidatorJwt.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Validator: JWT (RS256) via an external identity provider'**
|
||
String get authPolicyValidatorJwt;
|
||
|
||
/// No description provided for @authPolicyAnonymous.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No tokens configured — the hub accepts anonymous calls. Fine for local work; configure tokens in ~/.chain/config.yaml for production.'**
|
||
String get authPolicyAnonymous;
|
||
|
||
/// No description provided for @authPolicyReloadRequired.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The config file (or an environment variable) changed after loading — the hub still enforces the previous state. Use “Reload” below to apply the change.'**
|
||
String get authPolicyReloadRequired;
|
||
|
||
/// No description provided for @authPolicyNeedsAdmin.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This view needs a token with the admin scope. Store it above under “Hub authentication” and reload.'**
|
||
String get authPolicyNeedsAdmin;
|
||
|
||
/// No description provided for @authPolicyHubTooOld.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The connected hub does not know this view yet — it is older than Studio. Update the hub (chain update apply) and reload.'**
|
||
String get authPolicyHubTooOld;
|
||
|
||
/// No description provided for @authPolicyRetry.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Retry'**
|
||
String get authPolicyRetry;
|
||
|
||
/// No description provided for @authPolicyReload.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reload tokens'**
|
||
String get authPolicyReload;
|
||
|
||
/// No description provided for @authPolicyReloadDone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reloaded — {n} tokens active.'**
|
||
String authPolicyReloadDone(int n);
|
||
|
||
/// No description provided for @authPolicyEditHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The policy is edited in ~/.chain/config.yaml (auth: section). After a change or token rotation, reload here — the hub applies it without a restart.'**
|
||
String get authPolicyEditHint;
|
||
|
||
/// No description provided for @authPolicyEnvSet.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Environment variable {env} is set'**
|
||
String authPolicyEnvSet(String env);
|
||
|
||
/// No description provided for @authPolicyEnvMissing.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Environment variable {env} is MISSING — the token is unusable'**
|
||
String authPolicyEnvMissing(String env);
|
||
|
||
/// No description provided for @authPolicyRateLimit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{n}/min'**
|
||
String authPolicyRateLimit(int n);
|
||
|
||
/// No description provided for @authPolicyJwtKeySource.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Key source'**
|
||
String get authPolicyJwtKeySource;
|
||
|
||
/// No description provided for @authPolicyJwtAudience.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Audience (aud)'**
|
||
String get authPolicyJwtAudience;
|
||
|
||
/// No description provided for @authPolicyJwtIssuer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Issuer (iss)'**
|
||
String get authPolicyJwtIssuer;
|
||
|
||
/// No description provided for @authPolicyJwtScopeClaim.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Scope claim'**
|
||
String get authPolicyJwtScopeClaim;
|
||
|
||
/// No description provided for @authPolicyNotChecked.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'not checked'**
|
||
String get authPolicyNotChecked;
|
||
|
||
/// 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 <provider>/ 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 <name>. 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. When a flow asks for a human approval, the request appears 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:
|
||
/// **'DATA TO REVIEW'**
|
||
String get approvalsPayloadPreview;
|
||
|
||
/// No description provided for @approvalsNoPayload.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No data was attached to this approval. You are deciding without a detail view — when in doubt, ask whoever set up the process. (Technical: the approval step\'s \"show:\" field controls what appears here.)'**
|
||
String get approvalsNoPayload;
|
||
|
||
/// No description provided for @approvalsNoDataConfirmTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Approve without review data?'**
|
||
String get approvalsNoDataConfirmTitle;
|
||
|
||
/// No description provided for @approvalsNoDataConfirmBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This flow deliberately attached no review data (no \"show:\" on its approval step). You can still approve — but you would be deciding without seeing the data behind this decision.'**
|
||
String get approvalsNoDataConfirmBody;
|
||
|
||
/// No description provided for @approvalsNoDataConfirmAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Approve anyway'**
|
||
String get approvalsNoDataConfirmAction;
|
||
|
||
/// No description provided for @approvalsRequestFallback.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Approval required for this step'**
|
||
String get approvalsRequestFallback;
|
||
|
||
/// No description provided for @approvalsFlowStepMeta.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Flow: {flow} · Step: {step}'**
|
||
String approvalsFlowStepMeta(String flow, String step);
|
||
|
||
/// No description provided for @approvalsIntroHelp.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Paused processes (flows) waiting for your decision. Each card shows which process is holding at which step and what data it puts in front of you — Approve resumes it, Reject stops it with your reason.'**
|
||
String get approvalsIntroHelp;
|
||
|
||
/// No description provided for @approvalsReviewerLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'You are deciding as'**
|
||
String get approvalsReviewerLabel;
|
||
|
||
/// No description provided for @approvalsReviewerUnverifiedPill.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'not verified'**
|
||
String get approvalsReviewerUnverifiedPill;
|
||
|
||
/// No description provided for @approvalsReviewerRecordedAs.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recorded as: {value}'**
|
||
String approvalsReviewerRecordedAs(Object value);
|
||
|
||
/// No description provided for @approvalsReviewerNoteAnonymous.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This hub accepts calls without credentials, so a decision cannot be proven to be anyone\'s. Studio therefore marks the name inside the record itself as an unchecked claim.'**
|
||
String get approvalsReviewerNoteAnonymous;
|
||
|
||
/// No description provided for @approvalsReviewerNoteAuthenticated.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The hub checks your access but records the name exactly as Studio sends it. Until the hub derives the identity from the checked access itself, Studio marks the name inside the record as an unchecked claim.'**
|
||
String get approvalsReviewerNoteAuthenticated;
|
||
|
||
/// No description provided for @approvalsReviewerNoteUnknown.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Studio could not read this hub\'s access settings (that needs admin rights). The name is stored exactly as sent and is therefore marked inside the record as an unchecked claim.'**
|
||
String get approvalsReviewerNoteUnknown;
|
||
|
||
/// No description provided for @approvalsReviewerUnverifiedTooltip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Unchecked claim: this name comes from the deciding Studio, not from the hub.'**
|
||
String get approvalsReviewerUnverifiedTooltip;
|
||
|
||
/// No description provided for @approvalsRejectDialogHelp.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Rejecting stops the process at this step and is recorded with your reason in the audit trail.'**
|
||
String get approvalsRejectDialogHelp;
|
||
|
||
/// No description provided for @approvalsRejectReasonHelper.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Required — recorded in the audit log.'**
|
||
String get approvalsRejectReasonHelper;
|
||
|
||
/// No description provided for @approvalsBatchNoDataTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Approve without review data?'**
|
||
String get approvalsBatchNoDataTitle;
|
||
|
||
/// No description provided for @approvalsBatchNoDataBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 of {total} selected approvals has no review data. You are approving it without a detail view.} other{{count} of {total} selected approvals have no review data. You are approving them without a detail view.}}'**
|
||
String approvalsBatchNoDataBody(num count, Object total);
|
||
|
||
/// No description provided for @approvalsCopyRun.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Copy run id'**
|
||
String get approvalsCopyRun;
|
||
|
||
/// No description provided for @approvalsRunCopied.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Run id copied'**
|
||
String get approvalsRunCopied;
|
||
|
||
/// No description provided for @approvalsUnknownReviewer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'(unknown)'**
|
||
String get approvalsUnknownReviewer;
|
||
|
||
/// No description provided for @approvalsOriginLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'ORIGIN'**
|
||
String get approvalsOriginLabel;
|
||
|
||
/// No description provided for @approvalsOriginProject.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Project'**
|
||
String get approvalsOriginProject;
|
||
|
||
/// No description provided for @approvalsOriginRequested.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Requested'**
|
||
String get approvalsOriginRequested;
|
||
|
||
/// No description provided for @approvalsOriginRun.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Run'**
|
||
String get approvalsOriginRun;
|
||
|
||
/// No description provided for @approvalsApproveTooltip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Resumes the flow at this step'**
|
||
String get approvalsApproveTooltip;
|
||
|
||
/// No description provided for @approvalsRejectTooltip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Stops the flow — with your reason'**
|
||
String get approvalsRejectTooltip;
|
||
|
||
/// 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'**
|
||
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:
|
||
/// **'QUESTION'**
|
||
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, plural, =1{1 capability} other{{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} of {total} events verified'**
|
||
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 @doctorOllamaSuggest.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The system AI uses Ollama at {endpoint} — declare it as a host service so modules and the doctor know it?'**
|
||
String doctorOllamaSuggest(String endpoint);
|
||
|
||
/// No description provided for @doctorOllamaDeclareButton.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Declare as host service'**
|
||
String get doctorOllamaDeclareButton;
|
||
|
||
/// No description provided for @doctorOllamaDeclared.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Declared as host service \"ollama\" — takes effect after a daemon restart (button further down this page).'**
|
||
String get doctorOllamaDeclared;
|
||
|
||
/// No description provided for @updateHintBanner.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Version {latest} is available for the hub ({local}).'**
|
||
String updateHintBanner(String local, String latest);
|
||
|
||
/// No description provided for @updateHintOpenDoctor.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open Doctor'**
|
||
String get updateHintOpenDoctor;
|
||
|
||
/// No description provided for @updateHintDismiss.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Later'**
|
||
String get updateHintDismiss;
|
||
|
||
/// No description provided for @svcExposureLoopback.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'local only'**
|
||
String get svcExposureLoopback;
|
||
|
||
/// No description provided for @svcExposurePrivate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'private network'**
|
||
String get svcExposurePrivate;
|
||
|
||
/// No description provided for @svcExposurePublic.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'publicly reachable'**
|
||
String get svcExposurePublic;
|
||
|
||
/// No description provided for @svcExposureUnknown.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'reach unknown'**
|
||
String get svcExposureUnknown;
|
||
|
||
/// No description provided for @svcExposurePublicHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This service endpoint sits on a public address — make sure it is protected (TLS, auth, firewall).'**
|
||
String get svcExposurePublicHint;
|
||
|
||
/// No description provided for @svcExposureUnknownHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hostname instead of an IP address — the hub deliberately does not resolve names to classify. Check yourself where the name resolves.'**
|
||
String get svcExposureUnknownHint;
|
||
|
||
/// No description provided for @doctorLinkStore.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open the store'**
|
||
String get doctorLinkStore;
|
||
|
||
/// No description provided for @doctorLinkApprovals.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open approvals'**
|
||
String get doctorLinkApprovals;
|
||
|
||
/// No description provided for @doctorLinkAudit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open the audit log'**
|
||
String get doctorLinkAudit;
|
||
|
||
/// No description provided for @doctorLinkConfig.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'View the configuration'**
|
||
String get doctorLinkConfig;
|
||
|
||
/// No description provided for @doctorLinkReleaseNotes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open the release notes in the browser'**
|
||
String get doctorLinkReleaseNotes;
|
||
|
||
/// No description provided for @doctorModulesPanelSummary.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{n, plural, =1{1 module} other{{n} modules}} · {m, plural, =1{1 capability} other{{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} {n, plural, =1{event} other{events}} · linkage 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:
|
||
/// **'Hash chain verified'**
|
||
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 @doctorConnLine.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Connection: {endpoint} · {transport} · {auth}'**
|
||
String doctorConnLine(String endpoint, String transport, String auth);
|
||
|
||
/// No description provided for @doctorConnTls.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'TLS-encrypted'**
|
||
String get doctorConnTls;
|
||
|
||
/// No description provided for @doctorConnPlainLocal.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'unencrypted (stays on this machine)'**
|
||
String get doctorConnPlainLocal;
|
||
|
||
/// No description provided for @doctorConnPlainRemote.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'unencrypted'**
|
||
String get doctorConnPlainRemote;
|
||
|
||
/// No description provided for @doctorConnToken.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'token configured ({count} characters)'**
|
||
String doctorConnToken(int count);
|
||
|
||
/// No description provided for @doctorConnAnonymous.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'no token (anonymous)'**
|
||
String get doctorConnAnonymous;
|
||
|
||
/// No description provided for @doctorDbVolatileWarning.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The audit database is stored in a temporary folder the operating system may clean up at any time. For real evidence, move the hub\'s data directory to a permanent location.'**
|
||
String get doctorDbVolatileWarning;
|
||
|
||
/// 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.<server>.<tool> 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.<endpoint>.<slug> 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 @hubViewTooOldTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This view needs a newer hub version'**
|
||
String get hubViewTooOldTitle;
|
||
|
||
/// No description provided for @hubViewTooOldHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The hub is connected, but its version does not know this view yet. Update the hub (Doctor → Update) and the content will appear here.'**
|
||
String get hubViewTooOldHint;
|
||
|
||
/// No description provided for @hubViewLoadFailedTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This view could not be loaded'**
|
||
String get hubViewLoadFailedTitle;
|
||
|
||
/// 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 @searchGroupWorkspace.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Projects & areas'**
|
||
String get searchGroupWorkspace;
|
||
|
||
/// No description provided for @searchWorkspaceHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'switch context · ⌘P'**
|
||
String get searchWorkspaceHint;
|
||
|
||
/// No description provided for @searchWorkspaceSealedPickerHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'open the picker · ⌘P'**
|
||
String get searchWorkspaceSealedPickerHint;
|
||
|
||
/// 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 @settingsCategoryAbout.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'About'**
|
||
String get settingsCategoryAbout;
|
||
|
||
/// No description provided for @aboutPanelTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'About Ch∆In'**
|
||
String get aboutPanelTitle;
|
||
|
||
/// No description provided for @aboutPanelBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Product, vendor, and license details of this installation — every value is copyable.'**
|
||
String get aboutPanelBody;
|
||
|
||
/// No description provided for @aboutProduct.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Product'**
|
||
String get aboutProduct;
|
||
|
||
/// No description provided for @aboutStudioVersion.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Studio version'**
|
||
String get aboutStudioVersion;
|
||
|
||
/// No description provided for @aboutHubVersion.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hub version'**
|
||
String get aboutHubVersion;
|
||
|
||
/// No description provided for @aboutHubVersionUnknown.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'not connected'**
|
||
String get aboutHubVersionUnknown;
|
||
|
||
/// No description provided for @aboutVendor.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Vendor'**
|
||
String get aboutVendor;
|
||
|
||
/// No description provided for @aboutAuthor.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Author'**
|
||
String get aboutAuthor;
|
||
|
||
/// No description provided for @aboutLicense.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'License'**
|
||
String get aboutLicense;
|
||
|
||
/// No description provided for @aboutContact.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Contact'**
|
||
String get aboutContact;
|
||
|
||
/// No description provided for @aboutDocs.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Documentation'**
|
||
String get aboutDocs;
|
||
|
||
/// No description provided for @aboutOpenLink.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open in browser'**
|
||
String get aboutOpenLink;
|
||
|
||
/// No description provided for @aboutCopyTooltip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Copy'**
|
||
String get aboutCopyTooltip;
|
||
|
||
/// No description provided for @aboutCopiedToast.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Copied to the clipboard.'**
|
||
String get aboutCopiedToast;
|
||
|
||
/// No description provided for @sidebarSearchLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search & commands'**
|
||
String get sidebarSearchLabel;
|
||
|
||
/// No description provided for @installConfirmTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Install \"{name}\"?'**
|
||
String installConfirmTitle(String name);
|
||
|
||
/// No description provided for @installConfirmVersion.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Version'**
|
||
String get installConfirmVersion;
|
||
|
||
/// No description provided for @installConfirmSource.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Source'**
|
||
String get installConfirmSource;
|
||
|
||
/// No description provided for @installConfirmSourceBundled.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Bundled store index'**
|
||
String get installConfirmSourceBundled;
|
||
|
||
/// No description provided for @installConfirmLicense.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'License'**
|
||
String get installConfirmLicense;
|
||
|
||
/// No description provided for @installConfirmStatus.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Maturity'**
|
||
String get installConfirmStatus;
|
||
|
||
/// No description provided for @installConfirmNeedsServices.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Required services'**
|
||
String get installConfirmNeedsServices;
|
||
|
||
/// No description provided for @installConfirmNeedsCapabilities.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Required capabilities'**
|
||
String get installConfirmNeedsCapabilities;
|
||
|
||
/// No description provided for @installConfirmTrustTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Trust & security'**
|
||
String get installConfirmTrustTitle;
|
||
|
||
/// No description provided for @installConfirmTrustBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The module runs in a sandbox: it may only touch the network endpoints, files, and environment variables it declares itself — the hub enforces that list. The full permission list is visible in the module details after installation.'**
|
||
String get installConfirmTrustBody;
|
||
|
||
/// No description provided for @storeSectionMaintainers.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Maintainers'**
|
||
String get storeSectionMaintainers;
|
||
|
||
/// No description provided for @storeMaintainersNone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'not specified'**
|
||
String get storeMaintainersNone;
|
||
|
||
/// No description provided for @installConfirmMaintainers.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Maintainers'**
|
||
String get installConfirmMaintainers;
|
||
|
||
/// No description provided for @storePolicyUnverifiedNotice.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Signature enforcement is switched off in the hub policy — installs are not cryptographically verified. The install dialog shows the per-module status; enable security.require_signatures for verified installs.'**
|
||
String get storePolicyUnverifiedNotice;
|
||
|
||
/// No description provided for @verifPillBlocked.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'blocked'**
|
||
String get verifPillBlocked;
|
||
|
||
/// No description provided for @verifPinnedKey.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Signature checked — pinned store key'**
|
||
String get verifPinnedKey;
|
||
|
||
/// No description provided for @verifPinnedKeyBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The hub verifies the bundle at install time against this source\'s pinned key. A tampered bundle is refused.'**
|
||
String get verifPinnedKeyBody;
|
||
|
||
/// No description provided for @verifTrustedPublishers.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Signature checked — trusted publishers'**
|
||
String get verifTrustedPublishers;
|
||
|
||
/// No description provided for @verifTrustedPublishersBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The hub verifies the signature at install time against the trusted-publisher list. A bundle without a valid signature is refused.'**
|
||
String get verifTrustedPublishersBody;
|
||
|
||
/// No description provided for @verifUnverified.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Installs without signature checking'**
|
||
String get verifUnverified;
|
||
|
||
/// No description provided for @verifUnverifiedBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Signature enforcement is switched off in the hub policy — this bundle is not cryptographically verified at install time. Enable security.require_signatures for verified installs.'**
|
||
String get verifUnverifiedBody;
|
||
|
||
/// No description provided for @verifBlocked.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'An install would be refused'**
|
||
String get verifBlocked;
|
||
|
||
/// No description provided for @verifBlockedBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The policy requires signatures, but no key material applies to this source — the hub would refuse the install.'**
|
||
String get verifBlockedBody;
|
||
|
||
/// No description provided for @verifFederated.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Connected via an integration — no bundle signature'**
|
||
String get verifFederated;
|
||
|
||
/// No description provided for @verifFederatedBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This entry is not an installable bundle; it runs through a configured integration (e.g. MCP or n8n). There is no bundle signature — trust follows the integration.'**
|
||
String get verifFederatedBody;
|
||
|
||
/// No description provided for @installConfirmSignatureNote.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The hub verifies signatures at install time whenever the security profile requires them. The store index does not yet show a per-entry signature status up front (alpha).'**
|
||
String get installConfirmSignatureNote;
|
||
|
||
/// No description provided for @settingsSidebarPinnedTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Keep the navigation expanded'**
|
||
String get settingsSidebarPinnedTitle;
|
||
|
||
/// No description provided for @settingsSidebarPinnedBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Shows the sidebar labels permanently instead of only while hovering with the mouse.'**
|
||
String get settingsSidebarPinnedBody;
|
||
|
||
/// 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 .chain 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 .chain 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.chain'**
|
||
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 <dir>) and host the resulting .chain 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 @hubAuthRejectedBanner.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{endpoint} rejected the sign-in — check the access token'**
|
||
String hubAuthRejectedBanner(String endpoint);
|
||
|
||
/// 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 @federationAddIntro.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A satellite is another hub this hub connects to — its capabilities then become usable here in flows. You give it a name and receive a one-time token the satellite uses to enrol with this hub.'**
|
||
String get federationAddIntro;
|
||
|
||
/// No description provided for @federationNameHelp.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A free-form name to recognize this satellite in the list (e.g. its location or purpose). Display only — it changes nothing technical.'**
|
||
String get federationNameHelp;
|
||
|
||
/// 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 authenticates the satellite\'s first connect.'**
|
||
String get federationEnrollmentHint;
|
||
|
||
/// No description provided for @workspaceAll.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All projects'**
|
||
String get workspaceAll;
|
||
|
||
/// No description provided for @workspaceDefaultProject.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'General'**
|
||
String get workspaceDefaultProject;
|
||
|
||
/// No description provided for @workspaceSwitcherTooltip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Choose the working context — applies everywhere: filters flows, runs, audit and approvals, and stamps new runs with the selected project'**
|
||
String get workspaceSwitcherTooltip;
|
||
|
||
/// No description provided for @workspaceAnchorCaption.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Context'**
|
||
String get workspaceAnchorCaption;
|
||
|
||
/// No description provided for @workspaceStartConfirmTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Start area “{name}”?'**
|
||
String workspaceStartConfirmTitle(String name);
|
||
|
||
/// No description provided for @workspaceStartConfirmBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This sealed area is currently stopped. Studio starts its own hub instance on this machine and connects to it — running areas switch without this prompt.'**
|
||
String get workspaceStartConfirmBody;
|
||
|
||
/// No description provided for @workspaceStartConfirmAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Start and connect'**
|
||
String get workspaceStartConfirmAction;
|
||
|
||
/// No description provided for @workspaceSealedAggregateWhy.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Names stay aggregated because they can reveal client identities.'**
|
||
String get workspaceSealedAggregateWhy;
|
||
|
||
/// No description provided for @workspaceSealedAggregateSettings.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Always show: Settings → Security'**
|
||
String get workspaceSealedAggregateSettings;
|
||
|
||
/// No description provided for @workspaceProtectedHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Protected: logically separated in the shared hub — no hard process barrier. Critical engagements use a sealed area.'**
|
||
String get workspaceProtectedHint;
|
||
|
||
/// No description provided for @runsTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Runs'**
|
||
String get runsTitle;
|
||
|
||
/// No description provided for @runsReloadTooltip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reload the runs list'**
|
||
String get runsReloadTooltip;
|
||
|
||
/// No description provided for @runsEmptyTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No background runs'**
|
||
String get runsEmptyTitle;
|
||
|
||
/// No description provided for @runsEmptyHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Runs that keep working in the background while you do something else appear here. The feature is optional and off by default — the guide shows step by step how to turn it on.'**
|
||
String get runsEmptyHint;
|
||
|
||
/// No description provided for @runsEmptyEnabledHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Background runs are switched on — none has been started yet. Start a flow with the \"run in background\" option and it will appear here.'**
|
||
String get runsEmptyEnabledHint;
|
||
|
||
/// No description provided for @runsEmptyGuideButton.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open the guide'**
|
||
String get runsEmptyGuideButton;
|
||
|
||
/// No description provided for @runsEmptyFilteredTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No runs in project “{name}”'**
|
||
String runsEmptyFilteredTitle(String name);
|
||
|
||
/// No description provided for @runsEmptyFilteredHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The working context filters this list — other projects may have runs.'**
|
||
String get runsEmptyFilteredHint;
|
||
|
||
/// No description provided for @runsEmptyShowAll.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show all projects'**
|
||
String get runsEmptyShowAll;
|
||
|
||
/// No description provided for @runsHubTooOldTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This view needs a newer hub version'**
|
||
String get runsHubTooOldTitle;
|
||
|
||
/// No description provided for @runsHubTooOldHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The hub is connected, but its version does not know the runs monitor yet. Update the hub and the runs will appear here.'**
|
||
String get runsHubTooOldHint;
|
||
|
||
/// No description provided for @runsHubTooOldButton.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open Doctor'**
|
||
String get runsHubTooOldButton;
|
||
|
||
/// No description provided for @runsHubUpdateButton.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Update hub now'**
|
||
String get runsHubUpdateButton;
|
||
|
||
/// No description provided for @runsHubUpdateStarted.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Updating hub…'**
|
||
String get runsHubUpdateStarted;
|
||
|
||
/// No description provided for @runsLoadFailedTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Runs could not be loaded'**
|
||
String get runsLoadFailedTitle;
|
||
|
||
/// No description provided for @runsCancelButton.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cancel'**
|
||
String get runsCancelButton;
|
||
|
||
/// No description provided for @runsCancelSignalled.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cancel signalled for {flow}.'**
|
||
String runsCancelSignalled(String flow);
|
||
|
||
/// No description provided for @runsCancelTooLate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The run had already finished — nothing to cancel.'**
|
||
String get runsCancelTooLate;
|
||
|
||
/// No description provided for @runsCurrentStep.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Step: {step}'**
|
||
String runsCurrentStep(String step);
|
||
|
||
/// No description provided for @runsPhasePending.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pending'**
|
||
String get runsPhasePending;
|
||
|
||
/// No description provided for @runsPhaseRunning.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Running'**
|
||
String get runsPhaseRunning;
|
||
|
||
/// No description provided for @runsPhaseSucceeded.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Succeeded'**
|
||
String get runsPhaseSucceeded;
|
||
|
||
/// No description provided for @runsPhaseFailed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed'**
|
||
String get runsPhaseFailed;
|
||
|
||
/// No description provided for @runsPhaseCancelled.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cancelled'**
|
||
String get runsPhaseCancelled;
|
||
|
||
/// No description provided for @runsPhaseUnknown.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Unknown'**
|
||
String get runsPhaseUnknown;
|
||
|
||
/// No description provided for @navRuns.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Runs'**
|
||
String get navRuns;
|
||
|
||
/// No description provided for @workspaceSealedHeader.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'SEALED AREAS'**
|
||
String get workspaceSealedHeader;
|
||
|
||
/// No description provided for @workspaceSealedAggregate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{n, plural, =1{1 sealed area} other{{n} sealed areas}}'**
|
||
String workspaceSealedAggregate(int n);
|
||
|
||
/// No description provided for @workspaceSealedRevealAction.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show names'**
|
||
String get workspaceSealedRevealAction;
|
||
|
||
/// No description provided for @settingsSealedNamesTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'List sealed areas with their names right away'**
|
||
String get settingsSealedNamesTitle;
|
||
|
||
/// No description provided for @settingsSealedNamesBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Area names can be sensitive (client/mandate identity). By default the workspace switcher shows them aggregated; the names appear only after a click.'**
|
||
String get settingsSealedNamesBody;
|
||
|
||
/// No description provided for @workspaceSealedRunning.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'running'**
|
||
String get workspaceSealedRunning;
|
||
|
||
/// No description provided for @workspaceSealedStopped.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'stopped'**
|
||
String get workspaceSealedStopped;
|
||
|
||
/// No description provided for @workspaceSealedRunningHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The sealed area runs as its own hub process. Selecting it switches in.'**
|
||
String get workspaceSealedRunningHint;
|
||
|
||
/// No description provided for @workspaceSealedStoppedHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The sealed area is not running right now. Selecting it starts it and switches in.'**
|
||
String get workspaceSealedStoppedHint;
|
||
|
||
/// No description provided for @workspaceSealedStarting.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Starting sealed area “{name}”…'**
|
||
String workspaceSealedStarting(String name);
|
||
|
||
/// No description provided for @workspaceSealedStarted.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Started sealed area “{name}”.'**
|
||
String workspaceSealedStarted(String name);
|
||
|
||
/// No description provided for @workspaceSealedSwitchFailed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Could not switch to the sealed area: {error}'**
|
||
String workspaceSealedSwitchFailed(String error);
|
||
|
||
/// No description provided for @sealedIdentityBar.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sealed area — isolated hub, own data and audit chain'**
|
||
String get sealedIdentityBar;
|
||
|
||
/// No description provided for @sealedSwitchingBar.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Switching connection — data appears once the switch completes'**
|
||
String get sealedSwitchingBar;
|
||
|
||
/// No description provided for @sealedLeave.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Leave'**
|
||
String get sealedLeave;
|
||
|
||
/// No description provided for @setupStepOf.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Step {n} of {total}'**
|
||
String setupStepOf(int n, int total);
|
||
|
||
/// No description provided for @setupStep1Title.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'What are the stakes?'**
|
||
String get setupStep1Title;
|
||
|
||
/// No description provided for @setupStep2Title.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'What do you want to do first?'**
|
||
String get setupStep2Title;
|
||
|
||
/// No description provided for @setupStep3Title.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Where will it run?'**
|
||
String get setupStep3Title;
|
||
|
||
/// No description provided for @setupReviewTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This is what Ch∆In will set up'**
|
||
String get setupReviewTitle;
|
||
|
||
/// No description provided for @setupChooseFreeText.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Or just describe what you want to do'**
|
||
String get setupChooseFreeText;
|
||
|
||
/// No description provided for @setupScenTryingOut.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Just trying it out'**
|
||
String get setupScenTryingOut;
|
||
|
||
/// No description provided for @setupScenTryingOutSub.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A straightforward workstation on this machine — no signature requirement, no write-protected audit log. You can upgrade any time: run the setup again and pick a regulated profile.'**
|
||
String get setupScenTryingOutSub;
|
||
|
||
/// No description provided for @setupScenTeamHub.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A shared team hub'**
|
||
String get setupScenTeamHub;
|
||
|
||
/// No description provided for @setupScenTeamHubSub.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A secured hub for several people — signed modules, resource limits.'**
|
||
String get setupScenTeamHubSub;
|
||
|
||
/// No description provided for @setupScenRegulated.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Regulated production'**
|
||
String get setupScenRegulated;
|
||
|
||
/// No description provided for @setupScenRegulatedSub.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Signed modules, a complete tamper-evident audit trail, and a human approval before every AI step.'**
|
||
String get setupScenRegulatedSub;
|
||
|
||
/// No description provided for @setupScenBuildModules.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Building modules'**
|
||
String get setupScenBuildModules;
|
||
|
||
/// No description provided for @setupScenBuildModulesSub.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A developer setup for writing and testing your own modules.'**
|
||
String get setupScenBuildModulesSub;
|
||
|
||
/// No description provided for @setupIntentHello.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Run the hello example'**
|
||
String get setupIntentHello;
|
||
|
||
/// No description provided for @setupIntentHelloSub.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Just see one flow run end to end.'**
|
||
String get setupIntentHelloSub;
|
||
|
||
/// No description provided for @setupIntentExtract.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Extract text from documents'**
|
||
String get setupIntentExtract;
|
||
|
||
/// No description provided for @setupIntentExtractSub.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pull plain text out of PDF and DOCX files.'**
|
||
String get setupIntentExtractSub;
|
||
|
||
/// No description provided for @setupIntentExtractSummarize.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Extract and summarize'**
|
||
String get setupIntentExtractSummarize;
|
||
|
||
/// No description provided for @setupIntentExtractSummarizeSub.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Extract text, then summarize it.'**
|
||
String get setupIntentExtractSummarizeSub;
|
||
|
||
/// No description provided for @setupIntentClassify.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort incoming documents'**
|
||
String get setupIntentClassify;
|
||
|
||
/// No description provided for @setupIntentClassifySub.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Extract text, then classify it with an AI step.'**
|
||
String get setupIntentClassifySub;
|
||
|
||
/// No description provided for @setupIntentBuildModule.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Build my own module'**
|
||
String get setupIntentBuildModule;
|
||
|
||
/// No description provided for @setupIntentBuildModuleSub.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Start from a module scaffold.'**
|
||
String get setupIntentBuildModuleSub;
|
||
|
||
/// No description provided for @setupTargetLaptop.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This computer'**
|
||
String get setupTargetLaptop;
|
||
|
||
/// No description provided for @setupTargetLaptopSub.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Runs locally on the machine you are on now.'**
|
||
String get setupTargetLaptopSub;
|
||
|
||
/// No description provided for @setupTargetHomeServer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'An on-premise server'**
|
||
String get setupTargetHomeServer;
|
||
|
||
/// No description provided for @setupTargetHomeServerSub.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A server in your own house — starts on boot, runs in the background.'**
|
||
String get setupTargetHomeServerSub;
|
||
|
||
/// No description provided for @setupTargetAirgapped.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A fully local server (no internet)'**
|
||
String get setupTargetAirgapped;
|
||
|
||
/// No description provided for @setupTargetAirgappedSub.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'An isolated server with no internet — the strictest, most private posture.'**
|
||
String get setupTargetAirgappedSub;
|
||
|
||
/// No description provided for @setupTargetContainer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A container'**
|
||
String get setupTargetContainer;
|
||
|
||
/// No description provided for @setupTargetContainerSub.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Docker or Podman, with a ready-made compose snippet.'**
|
||
String get setupTargetContainerSub;
|
||
|
||
/// No description provided for @setupApprovalPlain.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Ask a person for approval before every AI step'**
|
||
String get setupApprovalPlain;
|
||
|
||
/// No description provided for @setupDataLocalPlain.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Data must never leave the building (fully local)'**
|
||
String get setupDataLocalPlain;
|
||
|
||
/// No description provided for @setupPlanIntroDev.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Ch∆In sets up a straightforward workspace.'**
|
||
String get setupPlanIntroDev;
|
||
|
||
/// No description provided for @setupPlanIntroEnterprise.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Ch∆In sets up a secured operation for a team.'**
|
||
String get setupPlanIntroEnterprise;
|
||
|
||
/// No description provided for @setupPlanIntroAirgapped.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Ch∆In sets up a fully local, regulated operation.'**
|
||
String get setupPlanIntroAirgapped;
|
||
|
||
/// No description provided for @setupPlanSignatures.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Only signed modules are allowed.'**
|
||
String get setupPlanSignatures;
|
||
|
||
/// No description provided for @setupPlanWorm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The audit log is additionally sealed tamper-proof (WORM).'**
|
||
String get setupPlanWorm;
|
||
|
||
/// No description provided for @setupPlanApproval.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Before every AI step, the system asks a person for approval.'**
|
||
String get setupPlanApproval;
|
||
|
||
/// No description provided for @setupPlanModules.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'These modules are prepared: {modules}.'**
|
||
String setupPlanModules(String modules);
|
||
|
||
/// No description provided for @setupPlanFlow.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'An example flow “{flow}” is created.'**
|
||
String setupPlanFlow(String flow);
|
||
|
||
/// No description provided for @setupPlanFileChanged.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Only one file is changed: {path}.'**
|
||
String setupPlanFileChanged(String path);
|
||
|
||
/// No description provided for @setupPlanOverwriteWarn.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'An existing configuration will be overwritten.'**
|
||
String get setupPlanOverwriteWarn;
|
||
|
||
/// No description provided for @setupApplied.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Done — Ch∆In is set up.'**
|
||
String get setupApplied;
|
||
|
||
/// No description provided for @setupNextTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Next steps'**
|
||
String get setupNextTitle;
|
||
|
||
/// No description provided for @setupNextHubStart.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Start the hub'**
|
||
String get setupNextHubStart;
|
||
|
||
/// No description provided for @setupHubRunning.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The hub is running.'**
|
||
String get setupHubRunning;
|
||
|
||
/// No description provided for @setupStartHubFirst.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Start the hub first — then the modules can be installed right here.'**
|
||
String get setupStartHubFirst;
|
||
|
||
/// No description provided for @setupActionInstall.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Install {module}'**
|
||
String setupActionInstall(String module);
|
||
|
||
/// No description provided for @setupActionInstalled.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{module} is installed.'**
|
||
String setupActionInstalled(String module);
|
||
|
||
/// No description provided for @setupActionOpenFlow.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open the “{flow}” example flow'**
|
||
String setupActionOpenFlow(String flow);
|
||
|
||
/// No description provided for @setupModulesOfflineHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The modules arrive as an offline bundle, without internet — the documentation explains this under “running without internet”.'**
|
||
String get setupModulesOfflineHint;
|
||
|
||
/// No description provided for @setupModulesSignedHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The modules come from your own, signed source — not from the public store.'**
|
||
String get setupModulesSignedHint;
|
||
|
||
/// No description provided for @setupSigPublicStoreNotice.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This setup only accepts signed modules. The public store currently ships unsigned bundles — the prepared modules therefore come from your own, signed source.'**
|
||
String get setupSigPublicStoreNotice;
|
||
|
||
/// No description provided for @setupAllowUnsigned.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Allow installing from the public store'**
|
||
String get setupAllowUnsigned;
|
||
|
||
/// No description provided for @setupAllowUnsignedSub.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Deliberately relaxes the signature requirement. Fine for trying things out — re-enable it for regulated operation.'**
|
||
String get setupAllowUnsignedSub;
|
||
|
||
/// No description provided for @setupStartCta.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Start setup'**
|
||
String get setupStartCta;
|
||
|
||
/// No description provided for @setupGateIntro.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Before you start: three questions, then Ch∆In sets this machine up to match. Nothing changes without your confirmation.'**
|
||
String get setupGateIntro;
|
||
|
||
/// No description provided for @setupGateSkip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Set up later'**
|
||
String get setupGateSkip;
|
||
|
||
/// No description provided for @settingsRunSetup.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Run setup again…'**
|
||
String get settingsRunSetup;
|
||
|
||
/// No description provided for @settingsRunSetupHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Opens the setup assistant (three questions, preview, apply). Your existing configuration is only replaced after you confirm.'**
|
||
String get settingsRunSetupHint;
|
||
|
||
/// No description provided for @setupPlanRunbookLocal.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This machine is being set up; the hub runs locally and starts on demand.'**
|
||
String get setupPlanRunbookLocal;
|
||
|
||
/// No description provided for @setupPlanRunbookService.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This machine is being set up: the hub will start automatically on boot (background service). For a different server, run the setup there.'**
|
||
String get setupPlanRunbookService;
|
||
|
||
/// No description provided for @setupPlanRunbookAirgap.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Intended for an isolated server without internet — modules and updates arrive as offline bundles.'**
|
||
String get setupPlanRunbookAirgap;
|
||
|
||
/// No description provided for @setupPlanRunbookContainer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Intended for container operation — a ready-made compose example is included.'**
|
||
String get setupPlanRunbookContainer;
|
||
|
||
/// No description provided for @setupPlanAuditChain.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Every step lands in a gapless, hash-chained audit log — tampering becomes detectable.'**
|
||
String get setupPlanAuditChain;
|
||
|
||
/// No description provided for @setupPlanDocs.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A matching reading list ({n} chapters) is stored with the setup record under ~/.chain/.'**
|
||
String setupPlanDocs(int n);
|
||
|
||
/// No description provided for @setupTrustedPublishersHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Important: when adding the source, pin the publisher\'s key (\"pin signing key\") — otherwise the hub accepts any formally valid signature, no matter whose.'**
|
||
String get setupTrustedPublishersHint;
|
||
|
||
/// No description provided for @setupAddSignedSource.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add a signed source…'**
|
||
String get setupAddSignedSource;
|
||
|
||
/// No description provided for @setupApplyNotes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Notes from the setup'**
|
||
String get setupApplyNotes;
|
||
|
||
/// No description provided for @setupFreeTextHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'e.g.: pre-screen incoming applications and flag incomplete ones'**
|
||
String get setupFreeTextHint;
|
||
|
||
/// No description provided for @setupFreeTextSuggest.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Suggest a setup'**
|
||
String get setupFreeTextSuggest;
|
||
|
||
/// No description provided for @setupFreeTextPrivacyLocal.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your description is processed right on this machine — by the local AI model {model}. Nothing leaves the device.'**
|
||
String setupFreeTextPrivacyLocal(String model);
|
||
|
||
/// No description provided for @setupFreeTextPrivacyRemote.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your description is sent to the configured system AI: {model} ({provider}).'**
|
||
String setupFreeTextPrivacyRemote(String model, String provider);
|
||
|
||
/// No description provided for @setupFreeTextUnavailable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The free-text path needs a configured system AI (Settings → System AI). The choices above always work — no AI required.'**
|
||
String get setupFreeTextUnavailable;
|
||
|
||
/// No description provided for @setupExecHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'For the preview and setup, Studio runs the “chain” program: {path}'**
|
||
String setupExecHint(String path);
|
||
|
||
/// No description provided for @setupExecHintTcc.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The program lives at {path} — macOS may ask once for access to that folder (e.g. “Documents”). That is expected and fine.'**
|
||
String setupExecHintTcc(String path);
|
||
|
||
/// No description provided for @setupNoBinaryStepHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The “chain” program could not be found on this machine — the preview in the next step will fail. You can pick it under “Doctor”, or install Ch∆In.'**
|
||
String get setupNoBinaryStepHint;
|
||
|
||
/// No description provided for @setupNoBinary.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The “chain” program could not be found on this machine.'**
|
||
String get setupNoBinary;
|
||
|
||
/// No description provided for @setupNoBinaryHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Without it the assistant cannot apply the setup. Pick it under “Doctor”, or reinstall Ch∆In.'**
|
||
String get setupNoBinaryHint;
|
||
|
||
/// No description provided for @setupCliTooOld.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The installed “chain” program is older than Studio and does not know this assistant yet.'**
|
||
String get setupCliTooOld;
|
||
|
||
/// No description provided for @setupCliTooOldHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Found: {path}. Please update Ch∆In (“Doctor” page → update, or in a terminal: chain update apply) and reopen the assistant afterwards.'**
|
||
String setupCliTooOldHint(String path);
|
||
|
||
/// No description provided for @setupPreviewFailed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The plan preview could not be created — the “chain” program reported an error.'**
|
||
String get setupPreviewFailed;
|
||
|
||
/// No description provided for @setupApplyFailed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The setup could not be applied — the “chain” program reported an error.'**
|
||
String get setupApplyFailed;
|
||
|
||
/// No description provided for @setupCliUsedBinary.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Executed: {path}'**
|
||
String setupCliUsedBinary(String path);
|
||
|
||
/// No description provided for @setupFreeTextParseError.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The system AI did not return a usable suggestion. Pick from the menu above — or try again.'**
|
||
String get setupFreeTextParseError;
|
||
|
||
/// No description provided for @setupReflectionTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This is how I read your task'**
|
||
String get setupReflectionTitle;
|
||
|
||
/// No description provided for @setupReflectionScenario.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'What it is about: {label}'**
|
||
String setupReflectionScenario(String label);
|
||
|
||
/// No description provided for @setupReflectionIntent.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'First task: {label}'**
|
||
String setupReflectionIntent(String label);
|
||
|
||
/// No description provided for @setupReflectionTarget.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Environment: {label}'**
|
||
String setupReflectionTarget(String label);
|
||
|
||
/// No description provided for @setupReflectionApproval.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A human is asked for approval before every AI step.'**
|
||
String get setupReflectionApproval;
|
||
|
||
/// No description provided for @setupReflectionDataLocal.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Data never leaves the building.'**
|
||
String get setupReflectionDataLocal;
|
||
|
||
/// No description provided for @setupReflectionEditHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Nothing is changed without your confirmation. Adjust any point, or go straight to the preview.'**
|
||
String get setupReflectionEditHint;
|
||
|
||
/// No description provided for @setupReflectionAdjust.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Adjust'**
|
||
String get setupReflectionAdjust;
|
||
|
||
/// No description provided for @setupReflectionToPreview.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'To the preview'**
|
||
String get setupReflectionToPreview;
|
||
|
||
/// No description provided for @setupProfileDev.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'straightforward workstation'**
|
||
String get setupProfileDev;
|
||
|
||
/// No description provided for @setupProfileEnterprise.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'hardened team operation'**
|
||
String get setupProfileEnterprise;
|
||
|
||
/// No description provided for @setupProfileAirgapped.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'fully local, regulated operation'**
|
||
String get setupProfileAirgapped;
|
||
|
||
/// No description provided for @welcomeChecklistSetupDone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The setup assistant already took care of the basics ({profile}) — this list shows what has actually happened on your hub.'**
|
||
String welcomeChecklistSetupDone(String profile);
|
||
}
|
||
|
||
class _AppLocalizationsDelegate
|
||
extends LocalizationsDelegate<AppLocalizations> {
|
||
const _AppLocalizationsDelegate();
|
||
|
||
@override
|
||
Future<AppLocalizations> load(Locale locale) {
|
||
return SynchronousFuture<AppLocalizations>(lookupAppLocalizations(locale));
|
||
}
|
||
|
||
@override
|
||
bool isSupported(Locale locale) =>
|
||
<String>['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.',
|
||
);
|
||
}
|