feat: guided-setup wizard — localized explained options + plain-language plan
Some checks failed
Security / Security check (push) Failing after 1s
Some checks failed
Security / Security check (push) Failing after 1s
Reworks the Setup-Assistent toward the zero-learning-curve bar
(docs/architecture/guided-setup.md, phase 1.1):
- Every scenario/intent/target choice is now a localized option CARD
with a one-line plain-language explanation of what it configures
(DE+EN, Sie-form) — replacing the bare dropdowns whose labels were
English enum humanizations ('Regulated Production', 'This Laptop').
- Three explained steps with a 'Schritt n von 3' progress line
(stakes → task → environment); the two adaptive toggles move to the
last step in plain language (no 'air-gapped' jargon).
- The review step renders a localized PLAIN-LANGUAGE summary built
from 'chain init --answers --plan-json' (the structured SetupPlan) —
'Ch∆In richtet einen regulierten Betrieb ein: signierte Module
verlangt · … · geändert wird nur ~/.chain/config.yaml' — instead of
echoing the CLI's English prose. Warns when an existing config will
be overwritten. After apply: a plain 'Fertig' + next steps.
flutter analyze clean; widget tests for the step flow + German option
labels. Remaining per plan: clickable follow-up actions, signature
dead-end fix, placement/auto-open, and the LLM free-text path.
Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
parent
0073d77a67
commit
140408d26a
7 changed files with 1133 additions and 146 deletions
|
|
@ -2967,4 +2967,180 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get sealedLeave => 'Leave';
|
||||
|
||||
@override
|
||||
String setupStepOf(int n, int total) {
|
||||
return 'Step $n of $total';
|
||||
}
|
||||
|
||||
@override
|
||||
String get setupStep1Title => 'What are the stakes?';
|
||||
|
||||
@override
|
||||
String get setupStep2Title => 'What do you want to do first?';
|
||||
|
||||
@override
|
||||
String get setupStep3Title => 'Where will it run?';
|
||||
|
||||
@override
|
||||
String get setupReviewTitle => 'This is what Ch∆In will set up';
|
||||
|
||||
@override
|
||||
String get setupChooseFreeText => 'Or just describe what you want to do';
|
||||
|
||||
@override
|
||||
String get setupScenTryingOut => 'Just trying it out';
|
||||
|
||||
@override
|
||||
String get setupScenTryingOutSub =>
|
||||
'A relaxed workspace on this machine — no signing, no audit locking.';
|
||||
|
||||
@override
|
||||
String get setupScenTeamHub => 'A shared team hub';
|
||||
|
||||
@override
|
||||
String get setupScenTeamHubSub =>
|
||||
'A secured hub for several people — signed modules, resource limits.';
|
||||
|
||||
@override
|
||||
String get setupScenRegulated => 'Regulated production';
|
||||
|
||||
@override
|
||||
String get setupScenRegulatedSub =>
|
||||
'Signed modules, a complete tamper-evident audit trail, and a human approval before every AI step.';
|
||||
|
||||
@override
|
||||
String get setupScenBuildModules => 'Building modules';
|
||||
|
||||
@override
|
||||
String get setupScenBuildModulesSub =>
|
||||
'A developer setup for writing and testing your own modules.';
|
||||
|
||||
@override
|
||||
String get setupIntentHello => 'Run the hello example';
|
||||
|
||||
@override
|
||||
String get setupIntentHelloSub => 'Just see one flow run end to end.';
|
||||
|
||||
@override
|
||||
String get setupIntentExtract => 'Extract text from documents';
|
||||
|
||||
@override
|
||||
String get setupIntentExtractSub =>
|
||||
'Pull plain text out of PDF and DOCX files.';
|
||||
|
||||
@override
|
||||
String get setupIntentExtractSummarize => 'Extract and summarize';
|
||||
|
||||
@override
|
||||
String get setupIntentExtractSummarizeSub =>
|
||||
'Extract text, then summarize it.';
|
||||
|
||||
@override
|
||||
String get setupIntentClassify => 'Sort incoming documents';
|
||||
|
||||
@override
|
||||
String get setupIntentClassifySub =>
|
||||
'Extract text, then classify it with an AI step.';
|
||||
|
||||
@override
|
||||
String get setupIntentBuildModule => 'Build my own module';
|
||||
|
||||
@override
|
||||
String get setupIntentBuildModuleSub => 'Start from a module scaffold.';
|
||||
|
||||
@override
|
||||
String get setupTargetLaptop => 'This computer';
|
||||
|
||||
@override
|
||||
String get setupTargetLaptopSub =>
|
||||
'Runs locally on the machine you are on now.';
|
||||
|
||||
@override
|
||||
String get setupTargetHomeServer => 'An on-premise server';
|
||||
|
||||
@override
|
||||
String get setupTargetHomeServerSub =>
|
||||
'A server in your own house — starts on boot, runs in the background.';
|
||||
|
||||
@override
|
||||
String get setupTargetAirgapped => 'A fully local server (no internet)';
|
||||
|
||||
@override
|
||||
String get setupTargetAirgappedSub =>
|
||||
'An isolated server with no internet — the strictest, most private posture.';
|
||||
|
||||
@override
|
||||
String get setupTargetContainer => 'A container';
|
||||
|
||||
@override
|
||||
String get setupTargetContainerSub =>
|
||||
'Docker or Podman, with a ready-made compose snippet.';
|
||||
|
||||
@override
|
||||
String get setupApprovalPlain =>
|
||||
'Ask a person for approval before every AI step';
|
||||
|
||||
@override
|
||||
String get setupDataLocalPlain =>
|
||||
'Data must never leave the building (fully local)';
|
||||
|
||||
@override
|
||||
String get setupPlanIntroDev => 'Ch∆In sets up a straightforward workspace.';
|
||||
|
||||
@override
|
||||
String get setupPlanIntroEnterprise =>
|
||||
'Ch∆In sets up a secured operation for a team.';
|
||||
|
||||
@override
|
||||
String get setupPlanIntroAirgapped =>
|
||||
'Ch∆In sets up a fully local, regulated operation.';
|
||||
|
||||
@override
|
||||
String get setupPlanSignatures => 'Only signed modules are allowed.';
|
||||
|
||||
@override
|
||||
String get setupPlanWorm =>
|
||||
'The audit log is additionally sealed tamper-proof (WORM).';
|
||||
|
||||
@override
|
||||
String get setupPlanApproval =>
|
||||
'Before every AI step, the system asks a person for approval.';
|
||||
|
||||
@override
|
||||
String setupPlanModules(String modules) {
|
||||
return 'These modules are prepared: $modules.';
|
||||
}
|
||||
|
||||
@override
|
||||
String setupPlanFlow(String flow) {
|
||||
return 'An example flow “$flow” is created.';
|
||||
}
|
||||
|
||||
@override
|
||||
String setupPlanFileChanged(String path) {
|
||||
return 'Only one file is changed: $path.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get setupPlanOverwriteWarn =>
|
||||
'An existing configuration will be overwritten.';
|
||||
|
||||
@override
|
||||
String get setupApplied => 'Done — Ch∆In is set up.';
|
||||
|
||||
@override
|
||||
String get setupNextTitle => 'Next steps';
|
||||
|
||||
@override
|
||||
String get setupNextHubStart => 'Start the hub';
|
||||
|
||||
@override
|
||||
String get setupNextInstall => 'Install the modules';
|
||||
|
||||
@override
|
||||
String get setupNextRunFlow => 'Run the example flow';
|
||||
|
||||
@override
|
||||
String get setupStartCta => 'Get started in 3 questions';
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue