feat: guided setup — free-text AI path (phase 1.2)

The wizard's first step now offers 'or just describe what you want
to do': the goal goes to the configured system AI, which maps it
onto the menu answers (validated against strict enum whitelists —
a hallucinated value can never reach the engine). The suggestion
comes back as an editable plain-language reflection ('this is how I
read your task') the operator can adjust step-by-step or take to
the same preview/apply the menu path uses. Trust rules per
guided-setup.md: suggestion only (never auto-apply), a privacy line
states whether the description is processed locally or sent to a
provider, and without a configured system AI the section explains
that the menu always works — no dead end.

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
flemming-it 2026-07-12 23:24:27 +02:00
parent 1f1e050b42
commit 09c901b75e
7 changed files with 619 additions and 2 deletions

View file

@ -1800,6 +1800,26 @@
"setupAllowUnsigned": "Allow installing from the public store",
"setupAllowUnsignedSub": "Deliberately relaxes the signature requirement. Fine for trying things out — re-enable it for regulated operation.",
"setupStartCta": "Get started in 3 questions",
"setupFreeTextHint": "e.g.: pre-screen incoming applications and flag incomplete ones",
"setupFreeTextSuggest": "Suggest a setup",
"setupFreeTextPrivacyLocal": "Your description is processed locally on this machine ({model}).",
"@setupFreeTextPrivacyLocal": {"placeholders": {"model": {"type": "String"}}},
"setupFreeTextPrivacyRemote": "Your description is sent to the configured system AI: {model} ({provider}).",
"@setupFreeTextPrivacyRemote": {"placeholders": {"model": {"type": "String"}, "provider": {"type": "String"}}},
"setupFreeTextUnavailable": "The free-text path needs a configured system AI (Settings → System AI). The choices above always work — no AI required.",
"setupFreeTextParseError": "The system AI did not return a usable suggestion. Pick from the menu above — or try again.",
"setupReflectionTitle": "This is how I read your task",
"setupReflectionScenario": "What it is about: {label}",
"@setupReflectionScenario": {"placeholders": {"label": {"type": "String"}}},
"setupReflectionIntent": "First task: {label}",
"@setupReflectionIntent": {"placeholders": {"label": {"type": "String"}}},
"setupReflectionTarget": "Environment: {label}",
"@setupReflectionTarget": {"placeholders": {"label": {"type": "String"}}},
"setupReflectionApproval": "A human is asked for approval before every AI step.",
"setupReflectionDataLocal": "Data never leaves the building.",
"setupReflectionEditHint": "Nothing is changed without your confirmation. Adjust any point, or go straight to the preview.",
"setupReflectionAdjust": "Adjust",
"setupReflectionToPreview": "To the preview",
"setupProfileDev": "straightforward workstation",
"setupProfileEnterprise": "hardened team operation",
"setupProfileAirgapped": "fully local, regulated operation",