diff --git a/MASTERPLAN.md b/MASTERPLAN.md index b321880..f39393f 100644 --- a/MASTERPLAN.md +++ b/MASTERPLAN.md @@ -83,11 +83,11 @@ bash infrastructure/08-memorybank-setup.sh # *** Kopier MEMORY_ENGINE_NAME fra output inn i .env *** nano .env && source .env -gcloud run deploy osvauco-agent \ - --source . --region europe-west1 \ - --project propane-will-491900-m5 \ - --set-secrets RAG_CORPUS=rag-corpus-name:latest \ - --set-env-vars GOOGLE_GENAI_USE_VERTEXAI=1,GOOGLE_CLOUD_PROJECT=propane-will-491900-m5,GOOGLE_CLOUD_LOCATION=global,MEMORY_ENGINE_NAME=$MEMORY_ENGINE_NAME \ +gcloud run deploy osvauco-agent + --source . --region europe-west1 + --project propane-will-491900-m5 + --set-secrets RAG_CORPUS=rag-corpus-name:latest + --set-env-vars GOOGLE_GENAI_USE_VERTEXAI=1,GOOGLE_CLOUD_PROJECT=propane-will-491900-m5,GOOGLE_CLOUD_LOCATION=global,MEMORY_ENGINE_NAME=$MEMORY_ENGINE_NAME --no-allow-unauthenticated bash infrastructure/04-observability-setup.sh @@ -142,17 +142,17 @@ bash infrastructure/03-teardown.sh Region: us-central1 Prosjekt: propane-will-491900-m5 (Jason-v1) [x] DX2 — Last opp FAQ-innhold som Data Store (2026-05-27) - FAQ-fil: data/threadstone_faq.csv, 39 Q&A-par, ~9 KB - GCS: gs://vauco-faq-store/threadstone_faq.csv - Data Store: threadstone-faq-store (FAQ-type, us multi-region) + - FAQ-fil: data/threadstone_faq.csv, 39 Q&A-par, ~9 KB + - GCS: gs://vauco-faq-store/threadstone_faq.csv + - Data Store: threadstone-faq-store (FAQ-type, us multi-region) [x] DX3 — Konfigurer Playbook med norsk systemprompt (2026-05-27) - Status: Norsk instrukssett satt i Default Generative Playbook - Svar: Fungerer — kortfattet norsk FAQ-respons med billing@vauco.no + - Status: Norsk instrukssett satt i Default Generative Playbook + - Svar: Fungerer — kortfattet norsk FAQ-respons med billing@vauco.no [ ] DX4 — Webhook mot OSVauco Cloud Run - AVKLARING: Jason-v1 FAQ er en ren Data Store-agent (ingen runtime-kall til Cloud Run). - Cloud Run-webhook håndteres i OSVauco API-laget (C2/C3), ikke i FAQ-agenten. - Cloud Run URL (funnet): https://osvauco-agent-zjbqp3prqq-uc.a.run.app - → Parkert til C2/C4 (Medioteq-integrasjon). + - AVKLARING: Jason-v1 FAQ er en ren Data Store-agent (ingen runtime-kall til Cloud Run). + - Cloud Run-webhook håndteres i OSVauco API-laget (C2/C3), ikke i FAQ-agenten. + - Cloud Run URL (funnet): https://osvauco-agent-zjbqp3prqq-uc.a.run.app + - → Parkert til C2/C4 (Medioteq-integrasjon). [ ] DX5 — Publiser via Dialogflow Messenger Trigger: Første ekstern kunde (C4 Medioteq) eller salgsmodul klar [ ] DX6 — Sett budsjett-alert for Dialogflow CX @@ -220,16 +220,23 @@ bash infrastructure/03-teardown.sh ## FASE C — Første salgsmodul ``` -[x] C1 — Pakk vauco-bootstrap som Terraform-modul ✅ KOMPLETT - infrastructure/modules/vauco-bootstrap/: main.tf, variables.tf, outputs.tf, versions.tf - Terraform validate: PASS - Inkludert: Dialogflow CX (google_dialogflow_cx_agent), dialogflow_region=europe-west1 -[ ] C2 — Pakk vauco-os som kundeflate - Mål: Ryddig repo med tydelig API-grensesnitt for kunder - Ingen eksponering av Vauco OS / OPAX / GCP-internals - NESTE STEG → Gemini TUI: Les MASTERPLAN.md, C1 ferdig, start C2 PLAN-blokk -[ ] C3 — Opprett billing@vauco.no som Google Group (manuell — Google Workspace Admin) +[x] C1 — Pakk vauco-bootstrap som Terraform-modul ✅ KOMPLETT (2026-05-27) + - infrastructure/modules/vauco-bootstrap/: main.tf, variables.tf, outputs.tf, versions.tf + - Terraform validate: PASS + - Inkludert: Dialogflow CX (google_dialogflow_cx_agent), dialogflow_region=europe-west1 +[x] C2 — Pakk vauco-os som kundeflate (2026-05-27) - KOMPLETT + Note: API-dokumentasjon (docs/CUSTOMER_API.md) opprettet. +[x] C3 — Opprett billing@vauco.no som Google Group (2026-05-27) + - Note: Billing Alerts (billing@vauco.no) eksisterte fra før – verifisert medlem/eierrskap. [ ] C4 — Første kunde: Medioteq + - FASE 1 (Design/plan): PLAN KLAR – AVVENTER C4.1 + COST GODKJENT + - [ ] C4.1 – Velg endelig Medioteq-prosjekt-ID og billing_account_id + - project_id velges i eget HITL-møte (forslag i medioteq.tf-kommentarene) + - billing_account_id dokumenteres og lagres i .env/.secrets + - ingen terraform plan/apply før C4.1 er krysset av + - [ ] C4.2 — Auth-strategi sluttfase (HITL-gate per kundeprosjekt) + Fase 1: Google login på godkjente enheter + Sluttfase: Vurder BankID / endelig OAuth-provider per kunde ``` --- diff --git a/data/threadstone_faq.csv b/data/threadstone_faq.csv new file mode 100644 index 0000000..5ccc5f2 --- /dev/null +++ b/data/threadstone_faq.csv @@ -0,0 +1,40 @@ +question,answer +"Hva er Threadstone?","Threadstone er en avansert AI-arbeidsflate utviklet av det norske selskapet Vauco AS. Det er et SaaS-produkt designet for å være en intelligent og sikker assistent som tilpasser seg din unike kontekst og arbeidsflyt, i motsetning til generiske AI-verktøy." +"Hvem er Threadstone for?","Threadstone er for kreative fagpersoner, byråer og bedrifter som trenger et kraftig og sikkert AI-verktøy. Det finnes en Consumer-versjon for enkeltbrukere og en Enterprise-versjon for team og organisasjoner, inkludert den spesialiserte MEDIOTEQ-løsningen for helsevesenet." +"Hva er forskjellen fra vanlige AI-verktøy som ChatGPT?","Threadstone skiller seg ut ved sin stateless arkitektur som sikrer at ingen av dine data lagres på våre servere, noe som gir fullt personvern. I tillegg kan du tilpasse assistenten med egne instruksjoner for mer relevante resultater." +"Hvilke modeller brukes?","Threadstone bruker gemini-2.5-flash som standardmodell og gemini-2.5-pro for avanserte oppgaver. Modellvalget er tilgjengelig basert på din lisenstype." +"Hva betyr ""Powered by Vauco AS""?","Dette er en obligatorisk merking som viser at tjenesten er utviklet, eid og driftet av Vauco AS (org.nr. 935 989 779), et norsk teknologiselskap. Det signaliserer at produktet er underlagt norsk lovgivning og en lokal, ansvarlig aktør." +"Er Threadstone norsk?","Ja, Threadstone er et helnorsk produkt. Det er utviklet, bygget og driftet i Oslo av Vauco AS, med et spesifikt fokus på sikkerhet og personvern for det nordiske markedet." +"Kan jeg bruke Threadstone på flere enheter?","Ja, plattformen er designet for å være fullt responsiv og tilgjengelig på alle enheter, enten du bruker PC, nettbrett eller mobil." +"Hva er Threadstone Assist?","Threadstone Assist er en innebygd guide som hjelper deg med å komme i gang og utnytte verktøyets fulle potensial." +"Hvilke lisenstyper finnes?","Vi tilbyr to hovedtyper: Threadstone Consumer for enkeltbrukere med lisenser på 7, 14, 30 eller 90 dager, og Threadstone Enterprise, en kvartalsbasert lisens for bedrifter med flere brukere og tilpassede funksjoner." +"Hva koster det?","Prisen avhenger av lisenstype og bruk. Kontakt oss på [billing@vauco.no](mailto:billing@vauco.no) for gjeldende priser." +"Hva er credits og hvordan brukes de?","Credits er vår interne valuta for å måle forbruk av AI-ressurser, hvor 1 credit tilsvarer 1 krone. Din lisens inkluderer en viss mengde bruk. Hvis du trenger mer kapasitet, kan du kjøpe ekstra credits." +"Hva skjer når creditsene er brukt opp?","Hvis du bruker opp den inkluderte kvoten, vil du få muligheten til å kjøpe flere credits for å fortsette å bruke tjenesten. For Enterprise-kunder kan overforbruk håndteres gjennom en egen avtale." +"Kan jeg oppgradere fra Consumer til Enterprise?","Ja, du kan enkelt oppgradere lisensen din. Prosessen er rask og kan startes direkte fra brukergrensesnittet." +"Lagres dataene mine?","Nei, ingen av dine samtaledata lagres på våre servere. Threadstone har en stateless arkitektur som betyr at alt du gjør i applikasjonen forblir lokalt på din maskin. Den eneste informasjonen vi har er knyttet til din lisens: ID, plan og utløpsdato." +"Er Threadstone GDPR-kompatibel?","Ja, plattformen er designet fra bunnen av for å være i samsvar med GDPR. Ved ikke å lagre dine data oppfyller vi prinsippet om dataminimering og gir deg full kontroll over din egen informasjon." +"Hvem har tilgang til mine samtaler?","Ingen andre enn deg selv. Siden ingen data forlater din lokale maskin, har verken ansatte i Vauco AS eller noen tredjeparter tilgang til innholdet i dine samtaler." +"Hva er stateless arkitektur?","Stateless (tilstandsløs) arkitektur betyr at serveren ikke lagrer informasjon om tidligere interaksjoner. Hver forespørsel behandles som en ny, uavhengig hendelse, som sikrer at ingen av dine data blir værende på våre systemer." +"Er Threadstone trygt å bruke i profesjonell sammenheng?","Ja, plattformens fokus på personvern og datasikkerhet gjør den ideell for profesjonell bruk. Den stateless arkitekturen sikrer at sensitiv bedriftsinformasjon forblir konfidensiell og under din fulle kontroll." +"Hvordan logger jeg inn?","Du får tilgang via en sikker innloggingsprosess med din Google-konto. Hver kunde får en unik og privat URL til sin egen instans av Threadstone." +"Hvilke enheter støttes?","Threadstone er en nettbasert applikasjon som fungerer på alle moderne enheter med en nettleser, inkludert stasjonære datamaskiner, bærbare, nettbrett og smarttelefoner." +"Hva er app.threadstone.vauco.no?","Dette er domenet hvor selve kundeapplikasjonen kjører. Når du kjøper en lisens, får du en unik lenke under dette domenet som leder til din private og sikre AI-arbeidsflate." +"Kan bedriften min ha egne instruksjoner og personas?","Ja, en av kjernefunksjonene i Threadstone Enterprise er muligheten til å definere tilpassede instruksjonssett og personas. Dette gjør at AI-assistenten kan tilpasses bedriftens spesifikke terminologi, tone og behov." +"Hva er $VCO?","$VCO (Vauco Coin) er et utility token som vil brukes til å betale for AI-kvote utover det som er inkludert i din lisens. I første fase brukes et internt kreditt-system, men $VCO er en del av vår langsiktige visjon for en transparent tokenøkonomi." +"Hvorfor bruker Threadstone tokens?","Token-systemet er designet for å skape en rettferdig og transparent modell for verdsetting av AI-forbruk. Det gir en forutsigbar måte å håndtere variable kostnader på, drevet av reell bruk av tjenesten, ikke spekulasjon." +"Hva er Vauco Value Ledger (VVL)?","Vauco Value Ledger (VVL) er den underliggende økonomiske infrastrukturen som håndterer alle verdiobjekter i Vaucos økosystem, inkludert $VCO. Det er en privat reskontro med innebygd vekslingsfunksjonalitet, tilgjengelig på [vvl.vauco.no](https://vvl.vauco.no)." +"Hva er $DRM og Deep Dream?","$DRM (Dream token) og Deep Dream er konsepter knyttet til en fremtidig fase av Vaucos utvikling. Deep Dream er tenkt som en plattform for kreative AI-sesjoner, og $DRM vil fungere som et verdi-anker knyttet til de unike digitale artefaktene som skapes der." +"Hva er MEDIOTEQ?","MEDIOTEQ er en spesialisert Threadstone Enterprise-instans, skreddersydd for norsk helsepersonell. Den fungerer som en klinisk beslutningsstøtte-agent for å hjelpe med vurderinger knyttet til funksjon, medisin og system, men er ikke et diagnoseverktøy." +"Kan MEDIOTEQ stille diagnoser?","Nei, absolutt ikke. MEDIOTEQ er et beslutningsstøtteverktøy, ikke en juridisk eller medisinsk instans. Verktøyet skal aldri erstatte klinisk skjønn, og ved alvorlige funn vil det alltid anbefale en legevurdering." +"Hvilke helsefaglige standarder støttes?","MEDIOTEQ støtter anerkjente standarder som Barthel-indeksen og MMSE (funksjon), ICD-10, NEWS2 og CRB-65 (medisin), samt regelverk knyttet til PLO, IP og NAV-stønader (system)." +"Kan MEDIOTEQ brukes i EPJ-dokumentasjon?","MEDIOTEQ er designet for å gi dokumentasjonsstøtte ved å strukturere informasjon i et format som er lett å overføre til elektroniske pasientjournaler (EPJ). Brukeren er selv ansvarlig for å verifisere og godkjenne all informasjon før den journalføres." +"Hvor lagres helsedata?","All data for MEDIOTEQ lagres i et separat og isolert miljø på servere i europe-north1 (Finland). Ingen rå pasientdata forlater kundens eget, sikre miljø, i tråd med GDPR og Normen." +"Kan pasienter bruke MEDIOTEQ direkte?","Nei, MEDIOTEQ er utelukkende et verktøy for autorisert helsepersonell. Plattformen skal aldri gi direktiver eller råd direkte til pasienter." +"Hvordan kontakter jeg support?","For alle spørsmål knyttet til fakturering, lisenser eller generell support, kontakt oss på [billing@vauco.no](mailto:billing@vauco.no)." +"Hva er billing@vauco.no?","Dette er vår sentrale e-postadresse for all kundekontakt som gjelder fakturering, betaling, lisensadministrasjon og support." +"Hvor finner jeg dokumentasjon?","Besøk [vauco.no](https://vauco.no) for informasjon og dokumentasjon, eller kontakt [billing@vauco.no](mailto:billing@vauco.no) for spesifikke spørsmål." +"Hvor finner jeg Threadstone?","Du finner informasjon om salg og lisenser på [threadstone.vauco.no](https://threadstone.vauco.no). Selve applikasjonen er tilgjengelig for kunder på [app.threadstone.vauco.no](https://app.threadstone.vauco.no)." +"Hvor kan jeg handle $VCO?","Handel og påfyll av $VCO skjer via vår portal [vco.vauco.no](https://vco.vauco.no)." +"Hvor leser jeg om Vauco Value Ledger?","Detaljert informasjon om vår økonomiske infrastruktur finner du på [vvl.vauco.no](https://vvl.vauco.no)." +"Hvor finner jeg støtte og dokumentasjon?","For generell informasjon, besøk [vauco.no](https://vauco.no). For support, kontakt [billing@vauco.no](mailto:billing@vauco.no)." \ No newline at end of file diff --git a/infrastructure/terraform/medioteq.tf b/infrastructure/terraform/medioteq.tf new file mode 100644 index 0000000..4ef1c49 --- /dev/null +++ b/infrastructure/terraform/medioteq.tf @@ -0,0 +1,34 @@ +# ============================================================================== +# Terraform-konfigurasjon for Medioteq (kunde) - UTKAST +# +# FASE 1: Design og planlegging. +# ============================================================================== + +# ------------------------------------------------------------------------------ +# Domener og Autentisering +# ------------------------------------------------------------------------------ +# Planlagte domener for Medioteq-tjenesten: +# Produksjon: https://medioteq-os.vauco.no +# Staging: https://medioteq-oss.vauco.no +# +# Autentiseringsstrategi (Fase 1): +# - Google-innlogging for brukere på godkjente enheter. +# ------------------------------------------------------------------------------ + +module "medioteq" { + source = "../modules/vauco-bootstrap" + + # TODO: Endelig project_id må velges i en HITL-gate før 'terraform apply'. + # Forslag: "medioteq-prod-eun1", "medioteq-clinical-eun1" + project_id = "" + + customer_id = "medioteq" + region = "europe-north1" + + # TODO: Disse verdiene må hentes fra et sikkert sted, f.eks. CI/CD-variabler, + # og mates inn i terraform plan-kommandoen. + billing_account_id = "" + alert_email = "billing@vauco.no" # Eksempelverdi + billing_viewer_emails = ["chris.christiansen@vauco.no"] # Eksempelverdi + container_image = "" # F.eks. "europe-north1-docker.pkg.dev/..." +}