diff --git a/plugins/ms-ai-architect/playground/ms-ai-architect-playground.html b/plugins/ms-ai-architect/playground/ms-ai-architect-playground.html index 3e2abc9..7c0ef7d 100644 --- a/plugins/ms-ai-architect/playground/ms-ai-architect-playground.html +++ b/plugins/ms-ai-architect/playground/ms-ai-architect-playground.html @@ -1586,7 +1586,7 @@ '' + '⚙︎' + 'Onboard / Re-onboard' + - 'Oppdater de 18 felles feltene som forhåndsutfyller alle command-skjemaer.' + + 'Oppdater de 20 felles feltene som forhåndsutfyller alle command-skjemaer.' + 'Felles stateÅpne →' + '' + '' + @@ -3637,20 +3637,37 @@ // til IDB. Re-onboard er bare navigate('onboarding') igjen — skjemaet // pre-fylles automatisk fra eksisterende state. + // v1.10.0: 4 strukturerte (sector, ai_act_role, risk_level, data_classification) + // + 16 fritekst (text/textarea med placeholder). Per R4 i plan-Revisions: + // free-text gir presis virksomhetskontekst som kan settes inn direkte i + // command-prompts uten å tvinge sjabloner som ikke matcher domenet. const ONBOARDING_SCHEMA = [ { id: 'organization', title: 'Virksomhetsprofil', sub: 'Hvem er dere?', fields: [ - { id: 'name', label: 'Virksomhetsnavn', type: 'text', required: true }, - { id: 'description', label: 'Beskrivelse', type: 'textarea' }, + { id: 'name', label: 'Virksomhetsnavn', type: 'text', required: true, + placeholder: 'f.eks. Bærum kommune, Statens vegvesen, Helse Sør-Øst RHF' }, + { id: 'description', label: 'Kort beskrivelse', type: 'textarea', + placeholder: 'Hva gjør virksomheten? F.eks. "Kommune med 8 000 ansatte, ansvar for skole, helse og byggesak."' }, { id: 'sector', label: 'Sektor', type: 'select', required: true, options: ['Statlig', 'Kommunal', 'Fylkeskommune', 'Helseforetak', 'Undervisning', 'Annet'] }, - { id: 'size', label: 'Antall ansatte', type: 'select', - options: ['<100', '100-500', '500-2000', '2000-10000', '>10000'] }, - { id: 'regulatory_requirements', label: 'Regulatoriske krav', type: 'multiSelect', - options: ['Personopplysningsloven/GDPR', 'Sikkerhetsloven', 'Arkivloven', 'Forvaltningsloven', 'Offentleglova', 'Helseregisterloven', 'Annet'] } + { id: 'size', label: 'Antall ansatte', type: 'text', + placeholder: 'f.eks. "1 500", "ca. 8 000", "<100"' } + ] + }, + { + id: 'regulatory', + title: 'Regulatorisk grunnlag', + sub: 'Hvilke krav styrer dere etter, og hvilken AI Act-rolle har dere?', + fields: [ + { id: 'regulatory_requirements', label: 'Regulatoriske krav', type: 'textarea', + placeholder: 'f.eks. "GDPR/Personopplysningsloven, Sikkerhetsloven, Forvaltningsloven, Helseregisterloven, Arkivloven"' }, + { id: 'ai_act_role', label: 'EU AI Act-rolle', type: 'select', + options: ['provider', 'deployer', 'distributor', 'importer'] }, + { id: 'risk_level', label: 'EU AI Act risikonivå', type: 'select', + options: ['forbidden', 'high', 'limited', 'minimal'] } ] }, { @@ -3658,26 +3675,27 @@ title: 'Teknologistack', sub: 'Hva har dere allerede?', fields: [ - { id: 'cloud_platform', label: 'Skyplattform', type: 'multiSelect', - options: ['Azure', 'M365', 'Power Platform', 'On-prem', 'Hybrid', 'Annet'] }, - { id: 'license_type', label: 'Lisenstype', type: 'select', - options: ['E3', 'E5', 'F1/F3', 'A3/A5', 'G3/G5', 'Annet'] }, - { id: 'ai_services_in_use', label: 'AI-tjenester i bruk', type: 'multiSelect', - options: ['Azure OpenAI', 'Copilot for M365', 'Copilot Studio', 'AI Builder', 'Azure AI Search', 'Azure AI Services', 'Ingen', 'Annet'] } + { id: 'cloud_platform', label: 'Skyplattform', type: 'textarea', + placeholder: 'f.eks. "Azure (Norge Øst), AWS (Stockholm), on-prem datasenter Drammen"' }, + { id: 'license_type', label: 'Lisenstype', type: 'text', + placeholder: 'f.eks. "M365 E5", "Azure Enterprise Agreement", "Power Platform per app"' }, + { id: 'ai_services_in_use', label: 'AI-tjenester i bruk', type: 'textarea', + placeholder: 'f.eks. "Azure OpenAI (GPT-4o, embedding), Copilot for M365, AI Builder, Azure AI Search"' } ] }, { id: 'security', title: 'Sikkerhet og compliance', - sub: 'Hvilke krav styrer dere etter?', + sub: 'Hvilke data og praksiser styrer dere etter?', fields: [ { id: 'data_classification', label: 'Dataklassifisering', type: 'multiSelect', options: ['Åpen', 'Intern', 'Fortrolig', 'Strengt fortrolig', 'Hemmelig'] }, - { id: 'data_residency', label: 'Dataresidens-krav', type: 'select', - options: ['Norge', 'Norden', 'EU/EØS', 'Ingen spesifikke krav'] }, - { id: 'dpia_practice', label: 'DPIA-praksis', type: 'select', - options: ['Systematisk', 'Ad hoc', 'Ikke etablert', 'Usikker'] }, - { id: 'certifications', label: 'Sertifiseringer/rammeverk', type: 'textarea' } + { id: 'data_residency', label: 'Dataresidens-krav', type: 'text', + placeholder: 'f.eks. "Kun Norge", "EU/EØS", "Norden", "Ingen spesifikke krav"' }, + { id: 'dpia_practice', label: 'DPIA-praksis', type: 'textarea', + placeholder: 'Hvordan utløses og gjennomføres DPIA? F.eks. "Sentralt personvernombud, mal etter Datatilsynet, halvårlig revisjon."' }, + { id: 'certifications', label: 'Sertifiseringer / rammeverk', type: 'textarea', + placeholder: 'f.eks. "ISO 27001, Digdir Trygg-pilot, NSM grunnprinsipper for IKT-sikkerhet"' } ] }, { @@ -3685,12 +3703,12 @@ title: 'Arkitekturbeslutninger', sub: 'Hvor vil dere?', fields: [ - { id: 'preferred_platform', label: 'Foretrukket AI-plattform', type: 'select', - options: ['Azure AI Foundry', 'Copilot Studio', 'Power Platform/AI Builder', 'Semantic Kernel', 'Ikke bestemt'] }, - { id: 'integration_needs', label: 'Integrasjonsbehov', type: 'multiSelect', - options: ['M365', 'SharePoint', 'Dynamics 365', 'SAP', 'Fagsystemer', 'REST API-er', 'Annet'] }, - { id: 'annual_ai_budget', label: 'Årlig AI-budsjett', type: 'select', - options: ['<500k', '500k-2M', '2M-10M', '>10M', 'Ikke definert'] } + { id: 'preferred_platform', label: 'Foretrukket AI-plattform', type: 'text', + placeholder: 'f.eks. "Azure AI Foundry", "Copilot Studio", "Power Platform/AI Builder", "Ikke bestemt"' }, + { id: 'integration_needs', label: 'Integrasjonsbehov', type: 'textarea', + placeholder: 'Eksisterende systemer som trenger AI-integrasjon. F.eks. "M365, SAP S/4, fagsystem KOMTEK, REST API mot folkeregister."' }, + { id: 'annual_ai_budget', label: 'Årlig AI-budsjett', type: 'text', + placeholder: 'f.eks. "2 MNOK", "500k-2M", "Ikke definert"' } ] }, { @@ -3698,11 +3716,12 @@ title: 'Forretningsreferanser', sub: 'Hvordan styrer dere?', fields: [ - { id: 'governance_model', label: 'Styringsmodell for AI', type: 'select', - options: ['Sentralisert', 'Desentralisert', 'Hybrid', 'Ikke etablert'] }, - { id: 'doc_format_preferences', label: 'Dokumentformat', type: 'multiSelect', - options: ['Markdown', 'Word', 'PDF', 'Confluence', 'SharePoint Wiki', 'Annet'] }, - { id: 'reference_architecture', label: 'Referansearkitektur', type: 'textarea' } + { id: 'governance_model', label: 'Styringsmodell for AI', type: 'textarea', + placeholder: 'Hvem eier AI-beslutninger? F.eks. "Sentralt AI-råd ledes av digitaliseringsdirektør, beslutninger eskalerer til CIO."' }, + { id: 'doc_format_preferences', label: 'Dokumentformat', type: 'text', + placeholder: 'f.eks. "Markdown + PDF", "Confluence", "SharePoint Wiki", "Word"' }, + { id: 'reference_architecture', label: 'Referansearkitektur', type: 'textarea', + placeholder: 'Eksisterende prinsipper, lenker til wiki/docs. F.eks. "TOGAF-tilpasset, ref Confluence /arch."' } ] } ]; @@ -3734,11 +3753,12 @@ const dataAttrs = 'data-onboarding-field="' + escapeAttr(path) + '"'; const requiredMark = field.required ? '*' : ''; const labelHtml = '' + escapeHtml(field.label) + requiredMark + ''; + const placeholderAttr = field.placeholder ? ' placeholder="' + escapeAttr(field.placeholder) + '"' : ''; let inputHtml = ''; if (field.type === 'text') { - inputHtml = ''; + inputHtml = ''; } else if (field.type === 'textarea') { - inputHtml = '' + escapeHtml(value || '') + ''; + inputHtml = '' + escapeHtml(value || '') + ''; } else if (field.type === 'select') { const opts = ['(velg)'].concat(field.options.map(function (o) { const sel = (o === value) ? ' selected' : ''; @@ -3860,7 +3880,7 @@ '' + '' + 'Velkommen til ms-ai-architect' + - 'Fyll inn 18 felles felter — de gjenbrukes på tvers av alle commands og forhåndsutfyller skjemaer per prosjekt.' + + 'Fyll inn 20 felles felter — de gjenbrukes på tvers av alle commands og forhåndsutfyller skjemaer per prosjekt.' + '' + errorSummary + '' + groupsHtml + '' +
Oppdater de 18 felles feltene som forhåndsutfyller alle command-skjemaer.
Oppdater de 20 felles feltene som forhåndsutfyller alle command-skjemaer.
Fyll inn 18 felles felter — de gjenbrukes på tvers av alle commands og forhåndsutfyller skjemaer per prosjekt.
Fyll inn 20 felles felter — de gjenbrukes på tvers av alle commands og forhåndsutfyller skjemaer per prosjekt.