aimeat 1.32.1 → 1.33.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/locales/en.json +359 -2
- package/dist/locales/fi.json +359 -2
- package/dist/public/css/views/admin.css +10 -0
- package/dist/public/css/views/agents-detail.css +8 -0
- package/dist/public/css/views/my-company.css +41 -0
- package/dist/public/css/views/profile.css +7 -1
- package/dist/public/css/views/secretary.css +482 -1
- package/dist/public/js/services/admin.js +7 -0
- package/dist/public/js/services/agents.js +18 -3
- package/dist/public/js/services/generator-prompts-build.js +5 -1
- package/dist/public/js/services/organisms.js +16 -0
- package/dist/public/js/services/secretary-helpers.js +197 -0
- package/dist/public/js/services/secretary-policy.js +63 -0
- package/dist/public/js/services/secretary-routing.js +69 -0
- package/dist/public/spa.html +14 -0
- package/dist/public/views/admin/apps-tab.js +208 -0
- package/dist/public/views/admin.js +3 -0
- package/dist/public/views/my-company.js +247 -3
- package/dist/public/views/profile/agents/agent-card.js +15 -0
- package/dist/public/views/profile/apps-tab.js +4 -0
- package/dist/public/views/profile/extensions-tab.js +30 -1
- package/dist/public/views/profile/generator-settings.js +28 -1
- package/dist/public/views/secretary/cards-reach.js +235 -0
- package/dist/public/views/secretary/cards.js +419 -0
- package/dist/public/views/secretary/use-access.js +95 -0
- package/dist/public/views/secretary/use-autonomy.js +92 -0
- package/dist/public/views/secretary/use-create-resource.js +86 -0
- package/dist/public/views/secretary/use-crew.js +173 -0
- package/dist/public/views/secretary/use-guided-plan.js +112 -0
- package/dist/public/views/secretary/use-intake.js +332 -0
- package/dist/public/views/secretary/use-knowledge.js +104 -0
- package/dist/public/views/secretary/use-learning.js +140 -0
- package/dist/public/views/secretary.js +327 -34
- package/dist/src/cli/connect/mcp/tools/agent-management.d.ts +8 -8
- package/dist/src/cli/connect/mcp/tools/agent-management.js +1 -1
- package/dist/src/cli/connect/mcp/tools/agent-management.js.map +1 -1
- package/dist/src/enterprise/loader.d.ts.map +1 -1
- package/dist/src/enterprise/loader.js +2 -0
- package/dist/src/enterprise/loader.js.map +1 -1
- package/dist/src/enterprise/provider.d.ts +67 -1
- package/dist/src/enterprise/provider.d.ts.map +1 -1
- package/dist/src/enterprise/provider.js +17 -0
- package/dist/src/enterprise/provider.js.map +1 -1
- package/dist/src/generated/api-types.d.ts +744 -49
- package/dist/src/generated/api-types.d.ts.map +1 -1
- package/dist/src/generated/prisma-postgres/edge.js +7 -3
- package/dist/src/generated/prisma-postgres/index-browser.js +4 -0
- package/dist/src/generated/prisma-postgres/index.d.ts +117 -1
- package/dist/src/generated/prisma-postgres/index.js +7 -3
- package/dist/src/generated/prisma-postgres/package.json +1 -1
- package/dist/src/generated/prisma-postgres/schema.prisma +16 -12
- package/dist/src/generated/prisma-postgres/wasm.js +7 -3
- package/dist/src/mcp/agent-management.d.ts +2 -0
- package/dist/src/mcp/agent-management.d.ts.map +1 -1
- package/dist/src/mcp/agent-management.js +5 -1
- package/dist/src/mcp/agent-management.js.map +1 -1
- package/dist/src/mcp/catalog/definitions.js +3 -3
- package/dist/src/mcp/catalog/definitions.js.map +1 -1
- package/dist/src/mcp/catalog/scopes.d.ts +46 -0
- package/dist/src/mcp/catalog/scopes.d.ts.map +1 -1
- package/dist/src/mcp/catalog/scopes.js +81 -0
- package/dist/src/mcp/catalog/scopes.js.map +1 -1
- package/dist/src/mcp/catalog/surfaces.js +2 -2
- package/dist/src/mcp/catalog/surfaces.js.map +1 -1
- package/dist/src/routes/agent-directives.d.ts +12 -1
- package/dist/src/routes/agent-directives.d.ts.map +1 -1
- package/dist/src/routes/agent-directives.js +30 -4
- package/dist/src/routes/agent-directives.js.map +1 -1
- package/dist/src/routes/agents.d.ts +3 -0
- package/dist/src/routes/agents.d.ts.map +1 -1
- package/dist/src/routes/agents.js +11 -4
- package/dist/src/routes/agents.js.map +1 -1
- package/dist/src/routes/ai.d.ts +2 -0
- package/dist/src/routes/ai.d.ts.map +1 -1
- package/dist/src/routes/ai.js +15 -2
- package/dist/src/routes/ai.js.map +1 -1
- package/dist/src/routes/apps.d.ts +14 -0
- package/dist/src/routes/apps.d.ts.map +1 -1
- package/dist/src/routes/apps.js +168 -3
- package/dist/src/routes/apps.js.map +1 -1
- package/dist/src/routes/extensions.d.ts +4 -0
- package/dist/src/routes/extensions.d.ts.map +1 -1
- package/dist/src/routes/extensions.js +75 -11
- package/dist/src/routes/extensions.js.map +1 -1
- package/dist/src/routes/libs.d.ts +6 -0
- package/dist/src/routes/libs.d.ts.map +1 -1
- package/dist/src/routes/libs.js +163 -0
- package/dist/src/routes/libs.js.map +1 -1
- package/dist/src/routes/oauth-login.d.ts +16 -6
- package/dist/src/routes/oauth-login.d.ts.map +1 -1
- package/dist/src/routes/oauth-login.js +290 -51
- package/dist/src/routes/oauth-login.js.map +1 -1
- package/dist/src/routes/openrouter.d.ts +2 -0
- package/dist/src/routes/openrouter.d.ts.map +1 -1
- package/dist/src/routes/openrouter.js +8 -1
- package/dist/src/routes/openrouter.js.map +1 -1
- package/dist/src/routes/organism-templates.d.ts +22 -0
- package/dist/src/routes/organism-templates.d.ts.map +1 -0
- package/dist/src/routes/organism-templates.js +110 -0
- package/dist/src/routes/organism-templates.js.map +1 -0
- package/dist/src/routes/schedules.d.ts +2 -0
- package/dist/src/routes/schedules.d.ts.map +1 -1
- package/dist/src/routes/schedules.js +3 -1
- package/dist/src/routes/schedules.js.map +1 -1
- package/dist/src/routes/specialists.d.ts +28 -0
- package/dist/src/routes/specialists.d.ts.map +1 -0
- package/dist/src/routes/specialists.js +227 -0
- package/dist/src/routes/specialists.js.map +1 -0
- package/dist/src/routes/subdomains.d.ts +3 -0
- package/dist/src/routes/subdomains.d.ts.map +1 -1
- package/dist/src/routes/subdomains.js +12 -2
- package/dist/src/routes/subdomains.js.map +1 -1
- package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
- package/dist/src/server-bootstrap/routes-loader.js +11 -3
- package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
- package/dist/src/services/ai-completion.d.ts +8 -0
- package/dist/src/services/ai-completion.d.ts.map +1 -1
- package/dist/src/services/ai-completion.js +7 -1
- package/dist/src/services/ai-completion.js.map +1 -1
- package/dist/src/services/discovery/setup.d.ts +2 -1
- package/dist/src/services/discovery/setup.d.ts.map +1 -1
- package/dist/src/services/discovery/setup.js +2 -0
- package/dist/src/services/discovery/setup.js.map +1 -1
- package/dist/src/services/discovery/sources/memory-source.d.ts +2 -0
- package/dist/src/services/discovery/sources/memory-source.d.ts.map +1 -1
- package/dist/src/services/discovery/sources/memory-source.js +8 -1
- package/dist/src/services/discovery/sources/memory-source.js.map +1 -1
- package/dist/src/services/discovery/sources/template-source.d.ts +17 -0
- package/dist/src/services/discovery/sources/template-source.d.ts.map +1 -0
- package/dist/src/services/discovery/sources/template-source.js +51 -0
- package/dist/src/services/discovery/sources/template-source.js.map +1 -0
- package/dist/src/services/discovery/types.d.ts +1 -1
- package/dist/src/services/discovery/types.d.ts.map +1 -1
- package/dist/src/services/extension-secrets.d.ts +63 -0
- package/dist/src/services/extension-secrets.d.ts.map +1 -0
- package/dist/src/services/extension-secrets.js +122 -0
- package/dist/src/services/extension-secrets.js.map +1 -0
- package/dist/src/services/handbooks/appdev.d.ts +1 -1
- package/dist/src/services/handbooks/appdev.d.ts.map +1 -1
- package/dist/src/services/handbooks/appdev.js +1 -1
- package/dist/src/services/openrouter.d.ts +1 -1
- package/dist/src/services/openrouter.d.ts.map +1 -1
- package/dist/src/services/openrouter.js +18 -2
- package/dist/src/services/openrouter.js.map +1 -1
- package/dist/src/services/organism-export.d.ts +2 -0
- package/dist/src/services/organism-export.d.ts.map +1 -1
- package/dist/src/services/organism-export.js +24 -5
- package/dist/src/services/organism-export.js.map +1 -1
- package/dist/src/services/organism-import.d.ts +11 -0
- package/dist/src/services/organism-import.d.ts.map +1 -1
- package/dist/src/services/organism-import.js +16 -1
- package/dist/src/services/organism-import.js.map +1 -1
- package/dist/src/services/organism-template.d.ts +160 -0
- package/dist/src/services/organism-template.d.ts.map +1 -0
- package/dist/src/services/organism-template.js +202 -0
- package/dist/src/services/organism-template.js.map +1 -0
- package/dist/src/services/scheduler.d.ts +45 -0
- package/dist/src/services/scheduler.d.ts.map +1 -1
- package/dist/src/services/scheduler.js +358 -5
- package/dist/src/services/scheduler.js.map +1 -1
- package/dist/src/services/secretary-tick.d.ts +127 -0
- package/dist/src/services/secretary-tick.d.ts.map +1 -0
- package/dist/src/services/secretary-tick.js +169 -0
- package/dist/src/services/secretary-tick.js.map +1 -0
- package/dist/src/services/secretary.d.ts +98 -2
- package/dist/src/services/secretary.d.ts.map +1 -1
- package/dist/src/services/secretary.js +130 -12
- package/dist/src/services/secretary.js.map +1 -1
- package/dist/src/services/specialist-policy.d.ts +39 -0
- package/dist/src/services/specialist-policy.d.ts.map +1 -0
- package/dist/src/services/specialist-policy.js +59 -0
- package/dist/src/services/specialist-policy.js.map +1 -0
- package/dist/src/services/specialist.d.ts +77 -0
- package/dist/src/services/specialist.d.ts.map +1 -0
- package/dist/src/services/specialist.js +137 -0
- package/dist/src/services/specialist.js.map +1 -0
- package/dist/src/services/structure-overview.d.ts +3 -0
- package/dist/src/services/structure-overview.d.ts.map +1 -1
- package/dist/src/services/structure-overview.js +20 -10
- package/dist/src/services/structure-overview.js.map +1 -1
- package/dist/src/services/system-agent.d.ts +39 -0
- package/dist/src/services/system-agent.d.ts.map +1 -0
- package/dist/src/services/system-agent.js +43 -0
- package/dist/src/services/system-agent.js.map +1 -0
- package/dist/src/storage/interface.d.ts +7 -2
- package/dist/src/storage/interface.d.ts.map +1 -1
- package/dist/src/storage/interface.js.map +1 -1
- package/dist/src/storage/providers/mongodb/index.d.ts +5 -0
- package/dist/src/storage/providers/mongodb/index.d.ts.map +1 -1
- package/dist/src/storage/providers/mongodb/index.js +31 -4
- package/dist/src/storage/providers/mongodb/index.js.map +1 -1
- package/dist/src/storage/providers/sqlite/index.d.ts +5 -0
- package/dist/src/storage/providers/sqlite/index.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/index.js +26 -6
- package/dist/src/storage/providers/sqlite/index.js.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.js +8 -0
- package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
- package/dist/src/storage/repositories/app.repository.d.ts +17 -0
- package/dist/src/storage/repositories/app.repository.d.ts.map +1 -1
- package/dist/src/utils/app-badge.d.ts +26 -0
- package/dist/src/utils/app-badge.d.ts.map +1 -0
- package/dist/src/utils/app-badge.js +56 -0
- package/dist/src/utils/app-badge.js.map +1 -0
- package/dist/static/app-catalog.html +315 -71
- package/package.json +1 -1
- package/prisma/schema.postgres.prisma +4 -0
- package/prisma/schema.prisma +4 -0
package/dist/locales/fi.json
CHANGED
|
@@ -554,7 +554,261 @@
|
|
|
554
554
|
"notReady": "Sihteeriäsi ei ole vielä pystytetty. Ota se käyttöön määrittämällä OpenRouter profiilisi asetuksissa.",
|
|
555
555
|
"identity": "Identiteetti",
|
|
556
556
|
"scopes": "Oikeudet",
|
|
557
|
-
"soon": "Chat, kalenteri ja päätökset tulossa pian."
|
|
557
|
+
"soon": "Chat, kalenteri ja päätökset tulossa pian.",
|
|
558
|
+
"hireTitle": "Pystytä sihteerisi",
|
|
559
|
+
"hireIntro": "Tee nopea haastattelu omassa AI-chatissasi, jotta sihteerisi oppii mitä tarvitset — sitten se pystyttää aivonsa ja järjestää tiedoillesi tilan automaattisesti.",
|
|
560
|
+
"hireStep1": "Kopioi tämä prompt AI-chattiisi (Claude, ChatGPT, …) ja vastaa sen kysymyksiin.",
|
|
561
|
+
"hireStep2": "Liitä AI:n lopullinen tulos tähän ja ota se käyttöön.",
|
|
562
|
+
"copyPrompt": "Kopioi pystytysprompt",
|
|
563
|
+
"copied": "Kopioitu",
|
|
564
|
+
"pastePlaceholder": "Liitä AI:n tuottama JSON tähän…",
|
|
565
|
+
"apply": "Pystytä sihteerini",
|
|
566
|
+
"applying": "Pystytetään…",
|
|
567
|
+
"hireDone": "Sihteerisi on pystytetty.",
|
|
568
|
+
"hireError": "Sihteerin pystytys epäonnistui",
|
|
569
|
+
"hireBadShape": "Liitetystä tuloksesta puuttuu pakollisia kenttiä (brain.purpose, organism.name, workspaces).",
|
|
570
|
+
"hiredStatus": "Sihteeri on pystytetty",
|
|
571
|
+
"brain": "Aivot",
|
|
572
|
+
"selfOrganism": "Tilasi",
|
|
573
|
+
"optionA": "Vaihtoehto A — käytä omaa AI-chattiasi",
|
|
574
|
+
"optionB": "Vaihtoehto B — pystytä tässä (käyttää OpenRouter-avaintasi)",
|
|
575
|
+
"needsPlaceholder": "Kuvaa parilla sanalla missä haluaisit apua…",
|
|
576
|
+
"generate": "Luo AI:llani",
|
|
577
|
+
"generating": "Luodaan…",
|
|
578
|
+
"inappDone": "Luonnos valmiina alla — tarkista ja pystytä.",
|
|
579
|
+
"inappError": "Luonti epäonnistui",
|
|
580
|
+
"inappEmpty": "AI ei palauttanut mitään.",
|
|
581
|
+
"howIWork": "Miten toimin",
|
|
582
|
+
"stopSpending": "Lopeta kulutus",
|
|
583
|
+
"stopSpendingHint": "Keskeytä kaikki mikä kuluttaa morsseja tai toimii itsenäisesti. Sihteeri voi yhä ajatella, luonnostella ja viestiä sinulle.",
|
|
584
|
+
"dailyBudget": "Päivittäinen morssi-budjetti",
|
|
585
|
+
"dailyBudgetHint": "Yläraja sille mitä itsenäiset toimet saavat kuluttaa päivässä.",
|
|
586
|
+
"noLimit": "Ei rajaa",
|
|
587
|
+
"bandsNote": "Nämä määräävät mitä sihteeri saa tehdä itsenäisesti. Kukin astuu voimaan kun kyseinen kyvykkyys valmistuu.",
|
|
588
|
+
"band": { "act": "Tee", "draft": "Luonnostele", "ask": "Kysy", "off": "Pois" },
|
|
589
|
+
"locked": "aina päällä",
|
|
590
|
+
"enterprise": "Enterprise",
|
|
591
|
+
"capCosts": "kuluttaa / ulospäin",
|
|
592
|
+
"cap": {
|
|
593
|
+
"discover": "Kartoita mitä on jo olemassa",
|
|
594
|
+
"file_intake": "Arkistoi muistiinpanot ja dokumentit",
|
|
595
|
+
"briefing": "Päivä- / viikkokatsaus",
|
|
596
|
+
"reminders": "Muistutukset ja herätteet",
|
|
597
|
+
"curate_knowledge": "Kuratoi tietoani",
|
|
598
|
+
"draft_replies": "Luonnostele vastauksia",
|
|
599
|
+
"resource_invoke": "Käytä löytynyttä agenttia tai palvelua",
|
|
600
|
+
"delegate": "Delegoi muille agenteilleni",
|
|
601
|
+
"third_party_message": "Viesti jollekulle muulle",
|
|
602
|
+
"create_resource": "Luo jotain mitä puuttuu",
|
|
603
|
+
"spend": "Kuluta morsseja"
|
|
604
|
+
},
|
|
605
|
+
"history": "Aivojen historia",
|
|
606
|
+
"restore": "Palauta",
|
|
607
|
+
"restored": "Aiempi aivoversio palautettu.",
|
|
608
|
+
"rerun": "Pystytä uudelleen",
|
|
609
|
+
"cancel": "Peruuta",
|
|
610
|
+
"addContext": "Lisää konteksti",
|
|
611
|
+
"addContextTitle": "Lisää konteksti",
|
|
612
|
+
"applyEdit": "Päivitä tämä konteksti",
|
|
613
|
+
"chatTitle": "Chat",
|
|
614
|
+
"chatEmpty": "Kysy sihteeriltäsi mitä vain tässä kontekstissa.",
|
|
615
|
+
"chatPlaceholder": "Viesti sihteerillesi…",
|
|
616
|
+
"chatSend": "Lähetä",
|
|
617
|
+
"chatSending": "…",
|
|
618
|
+
"chatError": "Sihteeriin ei saatu yhteyttä",
|
|
619
|
+
"findTitle": "Etsi mitä on jo olemassa",
|
|
620
|
+
"findHint": "Ennen kuin rakennat mitään, sihteeri kartoittaa verkostosta — hyödylliset agentit, palvelut ja muiden yritysten tarjoamat.",
|
|
621
|
+
"findPlaceholder": "Mitä etsit? (jätä tyhjäksi selataksesi)",
|
|
622
|
+
"findScopePublic": "Koko verkostosta",
|
|
623
|
+
"findScopeMine": "Omat",
|
|
624
|
+
"findSearch": "Etsi",
|
|
625
|
+
"findSearching": "Etsitään…",
|
|
626
|
+
"findEmpty": "Ei löytynyt — saatat olla ensimmäinen. Sihteeri voi auttaa luomaan sen.",
|
|
627
|
+
"findError": "Haku epäonnistui",
|
|
628
|
+
"routeSuggest": "Tämä kuulostaa kuuluvan kontekstiin",
|
|
629
|
+
"routeSwitch": "Vaihda",
|
|
630
|
+
"routeBelongs": "Tämä näyttää kuuluvan kohteeseen",
|
|
631
|
+
"routeFileThere": "Arkistoi sinne",
|
|
632
|
+
"routeUnsure": "En ole varma mihin kontekstiin tämä sopii — tallenna tähän tai anna minun kysyä sinulta postilaatikossa.",
|
|
633
|
+
"routedTo": "Reititetty kohteeseen",
|
|
634
|
+
"attach": "Liitä",
|
|
635
|
+
"attachHint": "Liitä asiakirja tai kuva — arkistoin sen oikeaan työtilaan. Kuvista tehdään tiivistelmä, jotta löydät ne sisällön perusteella.",
|
|
636
|
+
"attaching": "Arkistoidaan liitettä…",
|
|
637
|
+
"attachFiled": "Arkistoitu kohteeseen",
|
|
638
|
+
"attachError": "Liitteen arkistointi epäonnistui",
|
|
639
|
+
"attachVisionFailed": "Kuvaa ei voitu lukea, arkistoidaan silti",
|
|
640
|
+
"attachVisionPrompt": "Kuvaile tämä kuva arkistointia varten. Anna lyhyt otsikkorivi ja sitten 1–3 lausetta siitä, mitä kuva esittää sekä mahdollisesta näkyvästä tekstistä, nimistä, päivämääristä tai summista. Vastaa käyttäjän kielellä.",
|
|
641
|
+
"attachVisionSystem": "Autat henkilökohtaista avustajaa arkistoimaan ladatun kuvan. Ole ytimekäs ja asiallinen; älä keksi yksityiskohtia, joita et näe.",
|
|
642
|
+
"decisionAutoRationale": "Omistajan valitsema.",
|
|
643
|
+
"decisionAutoExpectedFile": "Arkistoitu paikkaan, josta se löytyy ja jota voi käsitellä myöhemmin.",
|
|
644
|
+
"create": {
|
|
645
|
+
"title": "Luo puuttuva",
|
|
646
|
+
"emptyHint": "Mitään ei löytynyt. Sihteerisi voi luonnostella tähän kyvyn, jotta se on jatkossa olemassa.",
|
|
647
|
+
"start": "Luonnostele kyky",
|
|
648
|
+
"reviewHint": "Tarkista luonnos ja hyväksy luodaksesi sen (pidetään yksityisenä sinulle).",
|
|
649
|
+
"name": "Kyvyn nimi",
|
|
650
|
+
"summary": "Mitä se tekee",
|
|
651
|
+
"whenToUse": "Milloin sitä käytetään",
|
|
652
|
+
"approve": "Hyväksy ja luo",
|
|
653
|
+
"done": "Kyky luotu",
|
|
654
|
+
"error": "Kyvyn luonti epäonnistui",
|
|
655
|
+
"summaryPrefix": "Kyky avuksi asiaan:",
|
|
656
|
+
"whenPrefix": "Käytä tätä kun tarvitset:",
|
|
657
|
+
"disabled": "Kykyjen luonti on poistettu käytöstä tässä solmussa — pyydä operaattoria ottamaan se käyttöön."
|
|
658
|
+
},
|
|
659
|
+
"knowledge": {
|
|
660
|
+
"title": "Kuratoi tietoni",
|
|
661
|
+
"add": "Lisää tietoa",
|
|
662
|
+
"hint": "Nosta hiottu muistiinpano tai päätös jaettavaan tietopankkiisi. Hyväksyt ennen kuin mitään tallennetaan.",
|
|
663
|
+
"titlePlaceholder": "Otsikko",
|
|
664
|
+
"bodyPlaceholder": "Tallennettava tieto…",
|
|
665
|
+
"shareCatalog": "Listaa myös julkiseen luetteloon",
|
|
666
|
+
"contribute": "Hyväksy ja lisää",
|
|
667
|
+
"done": "Lisätty tietopankkiisi",
|
|
668
|
+
"error": "Tiedon lisääminen epäonnistui",
|
|
669
|
+
"synthDesc": "Sihteerisi kuratoima",
|
|
670
|
+
"linkTitle": "Linkitä tietoa",
|
|
671
|
+
"linkAdd": "Lisää linkki",
|
|
672
|
+
"linkSource": "Paketista…",
|
|
673
|
+
"linkTarget": "Pakettiin…",
|
|
674
|
+
"linkDesc": "Miten ne liittyvät toisiinsa?",
|
|
675
|
+
"linkApprove": "Hyväksy ja linkitä",
|
|
676
|
+
"linked": "Tieto linkitetty.",
|
|
677
|
+
"linkError": "Pakettien linkitys epäonnistui"
|
|
678
|
+
},
|
|
679
|
+
"access": {
|
|
680
|
+
"title": "Hallitse pääsyä",
|
|
681
|
+
"hint": "Apua omien jakoryhmiesi ja suostumustesi hallintaan. Muutokset tulevat voimaan vasta kun hyväksyt ne.",
|
|
682
|
+
"grantsTitle": "Suostumukset",
|
|
683
|
+
"propose": "Ehdota suostumusta",
|
|
684
|
+
"dataPattern": "Datakuvio (esim. organism.abc.* )",
|
|
685
|
+
"recipient": "Vastaanottaja (GAII, ghii:, organism., node:, domain: tai *)",
|
|
686
|
+
"purpose": "Tarkoitus",
|
|
687
|
+
"approveGrant": "Hyväksy ja myönnä",
|
|
688
|
+
"noGrants": "Ei aktiivisia suostumuksia.",
|
|
689
|
+
"revoke": "Peru",
|
|
690
|
+
"granted": "Suostumus myönnetty.",
|
|
691
|
+
"revoked": "Suostumus peruttu.",
|
|
692
|
+
"error": "Pääsymuutos epäonnistui",
|
|
693
|
+
"groupsTitle": "Jakoryhmät",
|
|
694
|
+
"newGroup": "Uusi ryhmä",
|
|
695
|
+
"groupName": "Ryhmän nimi",
|
|
696
|
+
"createGroup": "Luo",
|
|
697
|
+
"noGroups": "Ei vielä jakoryhmiä.",
|
|
698
|
+
"members": "jäsentä",
|
|
699
|
+
"groupCreated": "Jakoryhmä luotu."
|
|
700
|
+
},
|
|
701
|
+
"crew": {
|
|
702
|
+
"title": "Pystytä tiimini",
|
|
703
|
+
"hint": "Yhdistä ja konfiguroi muut agenttisi — hyväksy odottava pyyntö ja aseta sitten sen tila ja tunnisteet.",
|
|
704
|
+
"pendingTitle": "Odottavat yhdistämispyynnöt",
|
|
705
|
+
"noPending": "Ei odottavia pyyntöjä.",
|
|
706
|
+
"unnamed": "Nimetön agentti",
|
|
707
|
+
"expiresIn": "vanhenee",
|
|
708
|
+
"approve": "Hyväksy",
|
|
709
|
+
"deny": "Hylkää",
|
|
710
|
+
"agentsTitle": "Muut agenttisi",
|
|
711
|
+
"noAgents": "Ei vielä muita yhdistettyjä agentteja.",
|
|
712
|
+
"tagsPlaceholder": "tunnisteet (pilkuin eroteltuna), Enter tallentaa",
|
|
713
|
+
"approved": "Agentti hyväksytty.",
|
|
714
|
+
"denied": "Pyyntö hylätty.",
|
|
715
|
+
"approveError": "Pyynnön hyväksyntä epäonnistui",
|
|
716
|
+
"configured": "Agentti päivitetty.",
|
|
717
|
+
"configError": "Agentin päivitys epäonnistui",
|
|
718
|
+
"addSpecTitle": "Lisää erikoisagentti",
|
|
719
|
+
"addSpecHint": "Ota käyttöön työrooliin erikoistunut agentti. Se toimii turvallisilla, vähimmäisoikeuksilla — jotkin roolit voivat pyytää lisäoikeuksia, jotka sinä hyväksyt.",
|
|
720
|
+
"specName": "nimi",
|
|
721
|
+
"specCreate": "Luo",
|
|
722
|
+
"specCreated": "Erikoisagentti luotu.",
|
|
723
|
+
"specError": "Erikoisagentin luonti epäonnistui",
|
|
724
|
+
"consentTitle": "Hyväksy lisäoikeudet agentille",
|
|
725
|
+
"consentNote": "Nämä ylittävät turvallisen oletuksen. Hyväksy vain se, mitä tämä agentti tarvitsee — voit muuttaa tätä myöhemmin.",
|
|
726
|
+
"consentSkip": "Pidä turvallinen oletus",
|
|
727
|
+
"consentGrant": "Myönnä valitut",
|
|
728
|
+
"extrasGranted": "Lisäoikeudet myönnetty."
|
|
729
|
+
},
|
|
730
|
+
"noteTitle": "Tallenna muistiinpano tilaasi",
|
|
731
|
+
"noteHint": "Kirjoita mitä vain — sihteeri arkistoi sen oikeaan työtilaan. Sinä vahvistat minne.",
|
|
732
|
+
"notePlaceholder": "Kirjaa jotain ylös…",
|
|
733
|
+
"noteInto": "Työtilaan",
|
|
734
|
+
"noteSave": "Tallenna",
|
|
735
|
+
"noteSaving": "Tallennetaan…",
|
|
736
|
+
"noteSaved": "Tallennettu työtilaan",
|
|
737
|
+
"noteError": "Muistiinpanon tallennus epäonnistui",
|
|
738
|
+
"askInInbox": "Kysy minulta inboxissa",
|
|
739
|
+
"askInInboxHint": "Anna sihteerin kysyä minne tämä arkistoidaan — vastaa inboxissa ja ota se sitten käyttöön täällä.",
|
|
740
|
+
"askWhereContent": "Minne arkistoin tämän muistiinpanon?",
|
|
741
|
+
"askWhereQ": "Mihin työtilaan tämä kuuluu?",
|
|
742
|
+
"askedInInbox": "Kysyin sinulta inboxissa.",
|
|
743
|
+
"decisionsTitle": "Päätökset odottavat sinua",
|
|
744
|
+
"decisionApply": "Ota käyttöön",
|
|
745
|
+
"decisionAwaiting": "Odottaa vastaustasi inboxissa…",
|
|
746
|
+
"feed": {
|
|
747
|
+
"title": "Mitä olen tehnyt",
|
|
748
|
+
"empty": "Ei vielä mitään. Ota alla päivittäinen tilannekatsaus käyttöön, niin alan pitää sinut ajan tasalla täällä."
|
|
749
|
+
},
|
|
750
|
+
"learn": {
|
|
751
|
+
"goalsTitle": "Tavoitteet",
|
|
752
|
+
"goalsEmpty": "Ei vielä tavoitteita. Lisää mihin pyrit, niin työskentelen sitä kohti.",
|
|
753
|
+
"addGoal": "Lisää tavoite",
|
|
754
|
+
"goalTitle": "Mihin pyrit?",
|
|
755
|
+
"goalWhy": "Miksi se on tärkeää? (valinnainen)",
|
|
756
|
+
"saveGoal": "Tallenna tavoite",
|
|
757
|
+
"done": "Valmis",
|
|
758
|
+
"reopen": "Avaa uudelleen",
|
|
759
|
+
"decisionsTitle": "Päätösloki",
|
|
760
|
+
"decisionsEmpty": "Ei kirjattuja päätöksiä. Kirjaa valinta ja odotettu lopputulos, niin arvioin miten se onnistui.",
|
|
761
|
+
"logDecision": "Kirjaa päätös",
|
|
762
|
+
"decision": "Mitä päätit?",
|
|
763
|
+
"options": "Harkitut vaihtoehdot (yksi riviä kohden)",
|
|
764
|
+
"chosen": "Valittu vaihtoehto",
|
|
765
|
+
"rationale": "Miksi tämä?",
|
|
766
|
+
"expected": "Odotettu lopputulos",
|
|
767
|
+
"goalRef": "Tavoite",
|
|
768
|
+
"revisitIn": "Arvioi (päivää)",
|
|
769
|
+
"revisit": "Arvioidaan",
|
|
770
|
+
"saveDecision": "Kirjaa päätös",
|
|
771
|
+
"reviewNow": "Arvioi nyt",
|
|
772
|
+
"enableFirst": "Ota ensin päivittäinen tilannekatsaus käyttöön — arviointi ajetaan joka katsauksessa.",
|
|
773
|
+
"error": "Jokin meni pieleen"
|
|
774
|
+
},
|
|
775
|
+
"auto": {
|
|
776
|
+
"title": "Itsenäinen tilannekatsaus",
|
|
777
|
+
"hint": "Anna minun tehdä tilannekatsaus itsenäisesti aikataulun mukaan ja kirjoittaa lyhyt katsaus tähän — OpenRouter-avaimellasi. Lopeta kulutus keskeyttää sen aina.",
|
|
778
|
+
"enable": "Ota päivittäinen katsaus käyttöön",
|
|
779
|
+
"enabled": "Päivittäinen katsaus käytössä.",
|
|
780
|
+
"scheduleName": "Sihteerin päivittäinen katsaus",
|
|
781
|
+
"nextRun": "Seuraava ajo",
|
|
782
|
+
"paused": "keskeytetty",
|
|
783
|
+
"pause": "Keskeytä",
|
|
784
|
+
"resume": "Jatka",
|
|
785
|
+
"runNow": "Aja nyt",
|
|
786
|
+
"running": "Ajetaan…",
|
|
787
|
+
"ran": "Katsaus tehty — katso feed.",
|
|
788
|
+
"skipped": "Ohitettu",
|
|
789
|
+
"budgetLeft": "Budjettia jäljellä tänään",
|
|
790
|
+
"error": "Katsauksen päivitys epäonnistui"
|
|
791
|
+
},
|
|
792
|
+
"reliability": "Luotettavuus",
|
|
793
|
+
"reliabilityBuilding": "kerätään…",
|
|
794
|
+
"reliabilityHint": "Sihteerin arvioitujen päätösten keskiarvopistemäärä — sen oma näyttö, ei markkinapaikan luottamus.",
|
|
795
|
+
"plan": {
|
|
796
|
+
"title": "Ohjattu suunnitelma",
|
|
797
|
+
"hint": "Kerro tavoite — ehdotan muutaman askeleen. Hyväksy ne, niin arkistoin suunnitelman ja kartoitan mitä on jo olemassa.",
|
|
798
|
+
"placeholder": "Mitä haluat saada tehtyä?",
|
|
799
|
+
"go": "Tee suunnitelma",
|
|
800
|
+
"planning": "Suunnitellaan…",
|
|
801
|
+
"approve": "Hyväksy & aja",
|
|
802
|
+
"running": "Ajetaan…",
|
|
803
|
+
"ran": "Suunnitelma toteutettu",
|
|
804
|
+
"filed": "Arkistoin suunnitelman työtilaan",
|
|
805
|
+
"found": "Olemassa olevia resursseja löytyi:",
|
|
806
|
+
"new": "Uusi suunnitelma",
|
|
807
|
+
"bad": "AI ei palauttanut käyttökelpoista suunnitelmaa.",
|
|
808
|
+
"error": "Suunnitelman teko epäonnistui",
|
|
809
|
+
"decisionChosen": "Hyväksyi ja suoritti tämän suunnitelman",
|
|
810
|
+
"decisionExpected": "Suunnitelma edistää tavoitetta aidosti."
|
|
811
|
+
}
|
|
558
812
|
},
|
|
559
813
|
"companies": {
|
|
560
814
|
"title": "Yritykset",
|
|
@@ -686,6 +940,55 @@
|
|
|
686
940
|
"listedHint": "Päällä yrityksesi — julkaistuine palveluineen ja hinnastoineen — näkyy corp-katalogissa. Pois päältä pysyt yksityisenä.",
|
|
687
941
|
"unlistedBadge": "ei hakemistossa",
|
|
688
942
|
"tabPortfolio": "Portfolio",
|
|
943
|
+
"tabSecretary": "Sihteeri",
|
|
944
|
+
"tabGovernance": "Talous",
|
|
945
|
+
"tabModel": "Yritysmalli",
|
|
946
|
+
"modelLoading": "Ladataan yritysmallia…",
|
|
947
|
+
"modelIntro": "Todellinen organisaatio jonka kanssa yrityssihteeri työskentelee — osastot, roolit, raportointilinjat ja ihmiset (useimmat eivät ole AIMEAT-käyttäjiä). Kuvaile yrityksesi ja anna tekoälyn muotoilla rakenne, tarkista ja ota käyttöön.",
|
|
948
|
+
"modelDescPlaceholder": "Kuvaile yrityksesi: mitä se tekee, osastot, keskeiset roolit ja kuka raportoi kenelle…",
|
|
949
|
+
"modelGenerate": "Luo malli",
|
|
950
|
+
"modelGenerating": "Luodaan…",
|
|
951
|
+
"modelCopyPrompt": "Kopioi prompt",
|
|
952
|
+
"modelPaste": "Liitä JSON",
|
|
953
|
+
"modelPastePlaceholder": "Liitä AI-chatin palauttama JSON…",
|
|
954
|
+
"modelReview": "Tarkista",
|
|
955
|
+
"modelDraft": "Luonnos — tarkista ennen käyttöönottoa",
|
|
956
|
+
"modelApply": "Ota malli käyttöön",
|
|
957
|
+
"modelDiscard": "Hylkää",
|
|
958
|
+
"modelApplied": "Yritysmalli tallennettu ✓",
|
|
959
|
+
"modelCopied": "Prompt kopioitu ✓",
|
|
960
|
+
"modelParseErr": "Mallia ei voitu lukea — odotettiin JSON-objektia.",
|
|
961
|
+
"modelEmpty": "Ei vielä yritysmallia. Kuvaile yrityksesi yllä luodaksesi sellaisen.",
|
|
962
|
+
"modelDepartments": "Osastot",
|
|
963
|
+
"modelRoles": "Roolit",
|
|
964
|
+
"modelPeople": "Ihmiset",
|
|
965
|
+
"modelReporting": "Raportointilinjat",
|
|
966
|
+
"govLoading": "Ladataan talouslukuja…",
|
|
967
|
+
"govIntro": "Kulut & ROI talouskielellä — yrityksen tapahtumakirjanpito, ei raakatokeneja. Liikevaihto, komissiotulot ja kustannus per tehtävä agenttikohtaisesti.",
|
|
968
|
+
"govRevenue": "Liikevaihto",
|
|
969
|
+
"govOrders": "Tilaukset",
|
|
970
|
+
"govAvg": "Ka / tehtävä",
|
|
971
|
+
"govCommissionIncome": "Komissiotulot",
|
|
972
|
+
"govByAgent": "Agenttikohtaisesti",
|
|
973
|
+
"govNoActivity": "Ei vielä tilauksia — luvut täyttyvät kun yrityksen agentit toimittavat tilauksia.",
|
|
974
|
+
"govAgent": "Agentti",
|
|
975
|
+
"govTasks": "Tehtävät",
|
|
976
|
+
"govRevenueShort": "Liikevaihto",
|
|
977
|
+
"govAvgShort": "Ka/tehtävä",
|
|
978
|
+
"govPayout": "Jäsenen osuus",
|
|
979
|
+
"govWallet": "Yrityksen lompakko",
|
|
980
|
+
"govCommission": "Komissio",
|
|
981
|
+
"govFee": "Alustamaksu",
|
|
982
|
+
"govRoiNote": "ROI-kohdistus kytkeytyy sihteerin päätöslokiin (päätökset pisteytettynä odotettua vastaan = kustannus per lopputulos); osastokohtainen erittely ja token-tason kustannus tulevat company-mallin myötä.",
|
|
983
|
+
"secLoading": "Ladataan yrityssihteeriä…",
|
|
984
|
+
"secIntro": "Ota tälle organisaatiolle käyttöön yrityssihteeri. Se toimii Enterprise-editiossa hallitulla, vain luettavalla aivoilla ja yritysadmin-scopeilla — koordinoi yrityksen agentteja, valmistelee laskutusta/compliancea ja antaa johdolle kulu- ja ROI-näkyvyyttä.",
|
|
985
|
+
"secEnable": "Ota yrityssihteeri käyttöön",
|
|
986
|
+
"secEnabling": "Otetaan käyttöön…",
|
|
987
|
+
"secTitle": "Yrityssihteeri",
|
|
988
|
+
"secBrain": "Aivot",
|
|
989
|
+
"secLocked": "Lukittu (Enterprisen hallinnoima)",
|
|
990
|
+
"secCaps": "Yritysadmin-kyvykkyydet",
|
|
991
|
+
"secScopes": "Myönnetyt scopet",
|
|
689
992
|
"pfIntro": "Rakenna yrityksellesi julkinen portfolio-sivu. Valitse mukaan otettavat, generoi prompt, liitä se AI-chattiisi, ja liitä sen palauttama HTML takaisin tähän ja julkaise.",
|
|
690
993
|
"pfLive": "Portfolio julkaistu ✓",
|
|
691
994
|
"pfVisit": "Avaa",
|
|
@@ -1269,6 +1572,7 @@
|
|
|
1269
1572
|
},
|
|
1270
1573
|
"agents": {
|
|
1271
1574
|
"title": "Agenttisi",
|
|
1575
|
+
"specialistBadge": "Asiantuntija",
|
|
1272
1576
|
"active": {
|
|
1273
1577
|
"title": "Käynnissä nyt",
|
|
1274
1578
|
"empty": "Ei käynnissä olevia taskeja juuri nyt.",
|
|
@@ -2466,7 +2770,9 @@
|
|
|
2466
2770
|
"parkedBadge": "Parkissa",
|
|
2467
2771
|
"parkedHint": "Vain sinä näet ja voit käyttää tätä — ei näy julkisessa katalogissa.",
|
|
2468
2772
|
"parked": "Sovellus parkissa",
|
|
2469
|
-
"unparked": "Sovellus julkaistu"
|
|
2773
|
+
"unparked": "Sovellus julkaistu",
|
|
2774
|
+
"operatorHiddenBadge": "Moderoitu operaattorin toimesta: piilotettu",
|
|
2775
|
+
"operatorHiddenHint": "Operaattori on piilottanut tämän sovelluksen julkisesta näkymästä. Vain sinä näet sen edelleen. Ota yhteyttä operaattoriin valittaaksesi."
|
|
2470
2776
|
},
|
|
2471
2777
|
"v8ext": {
|
|
2472
2778
|
"title": "Palvelinlaajennukset",
|
|
@@ -2480,6 +2786,7 @@
|
|
|
2480
2786
|
"instancesTitle": "Instanssit",
|
|
2481
2787
|
"noInstances": "Ei instansseja vielä. Luo instanssi käyttääksesi tätä laajennusta.",
|
|
2482
2788
|
"instanceIdPlaceholder": "instanssi-id (pienet kirjaimet, väliviivat ok)",
|
|
2789
|
+
"secretField": "salaisuus — salattu levyllä",
|
|
2483
2790
|
"createInstance": "Luo instanssi",
|
|
2484
2791
|
"deleteInstance": "Poista",
|
|
2485
2792
|
"copyId": "Kopioi ID",
|
|
@@ -3205,6 +3512,9 @@
|
|
|
3205
3512
|
"reasoningModel": "Päättelymalli (blueprintit, skeletonit, suunnittelu)",
|
|
3206
3513
|
"executionModel": "Suoritusmalli (koodi, testit, kokoaminen)",
|
|
3207
3514
|
"modelSelect": "Valitse malli",
|
|
3515
|
+
"visionModel": "Näkömalli (kuville)",
|
|
3516
|
+
"visionModelNone": "Ei mitään (älä lue kuvia)",
|
|
3517
|
+
"visionModel_hint": "Näkökykyinen malli (esim. qwen-2.5-VL), jolla luetaan Sihteeriin liittämäsi kuvat. Oletusmallisi on usein vain tekstiä.",
|
|
3208
3518
|
"autoRetry": "Automaattinen uudelleenyritys validointivirheessä",
|
|
3209
3519
|
"maxRetries": "Uudelleenyritysten enimmäismäärä",
|
|
3210
3520
|
"temperature": "Lämpötila (temperature)",
|
|
@@ -3487,6 +3797,9 @@
|
|
|
3487
3797
|
"reasoningModel": "Päättelymalli (blueprintit, skeletonit, suunnittelu)",
|
|
3488
3798
|
"executionModel": "Suoritusmalli (koodi, testit, kokoaminen)",
|
|
3489
3799
|
"modelSelect": "Valitse malli",
|
|
3800
|
+
"visionModel": "Näkömalli (kuville)",
|
|
3801
|
+
"visionModelNone": "Ei mitään (älä lue kuvia)",
|
|
3802
|
+
"visionModel_hint": "Näkökykyinen malli (esim. qwen-2.5-VL), jolla luetaan Sihteeriin liittämäsi kuvat. Oletusmallisi on usein vain tekstiä.",
|
|
3490
3803
|
"autoRetry": "Automaattinen uudelleenyritys validointivirheessä",
|
|
3491
3804
|
"maxRetries": "Uudelleenyritysten enimmäismäärä",
|
|
3492
3805
|
"temperature": "Lämpötila (temperature)",
|
|
@@ -4275,6 +4588,18 @@
|
|
|
4275
4588
|
"emailLabel": "Sähköposti",
|
|
4276
4589
|
"sendUsername": "Lähetä käyttäjätunnukseni",
|
|
4277
4590
|
"usernameSent": "Jos sähköpostiosoitteella on tili, käyttäjätunnus lähetettiin.",
|
|
4591
|
+
"signupTitle": "Valitse käyttäjätunnuksesi",
|
|
4592
|
+
"signupIntro": "Kirjaudut Googlella ensimmäistä kertaa. Valitse AIMEAT-tilisi käyttäjätunnus.",
|
|
4593
|
+
"signupEmailNote": "Rekisteröidyt osoitteella {email}",
|
|
4594
|
+
"signupUsernameLabel": "Käyttäjätunnus",
|
|
4595
|
+
"signupSuggestedHint": "Ehdotimme tunnusta Google-tilisi perusteella — voit vaihtaa sen mihin tahansa.",
|
|
4596
|
+
"signupPermanentWarning": "⚠️ Tämä käyttäjätunnus on pysyvä. Se tunnistaa sinut koko AIMEATissa eikä sitä voi vaihtaa jälkikäteen — ainoa tapa muuttaa se on poistaa tili ja luoda uusi.",
|
|
4597
|
+
"signupAvailable": "✓ Vapaa",
|
|
4598
|
+
"signupTaken": "Tämä käyttäjätunnus on jo varattu — valitse toinen.",
|
|
4599
|
+
"signupInvalid": "Käyttäjätunnuksen pituus 3–64 merkkiä: pieniä kirjaimia, numeroita ja väliviivoja.",
|
|
4600
|
+
"signupCreateBtn": "Luo tilini",
|
|
4601
|
+
"signupCreating": "Luodaan tiliä...",
|
|
4602
|
+
"signupCancelBtn": "Peruuta",
|
|
4278
4603
|
"whyTitle": "✨ Mitä saat?",
|
|
4279
4604
|
"whyGhii": "Oma digitaalinen identiteetti. Vain sinä hallitset sitä",
|
|
4280
4605
|
"whyPrivacy": "Oman yksityisen muistitilan, suojattuna salasanallasi",
|
|
@@ -7512,6 +7837,38 @@
|
|
|
7512
7837
|
"deleteTitle": "Poista alidomain-liitos",
|
|
7513
7838
|
"deleteConfirm": "Tämä poistaa liitoksen ja alidomain lakkaa toimimasta heti. Vahvista kirjoittamalla alidomainin nimi:"
|
|
7514
7839
|
},
|
|
7840
|
+
"apps": {
|
|
7841
|
+
"title": "Sovellukset",
|
|
7842
|
+
"desc": "Kaikki tähän solmuun julkaistut sovellukset. Piilota sovellus poistaaksesi sen kaikilta julkisilta pinnoilta (katalogi, galleria, haku ja suora lataus). Omistaja näkee sen edelleen merkinnällä \"moderoitu operaattorin toimesta: piilotettu\", mutta ei voi poistaa piilotusta — vain operaattori voi.",
|
|
7843
|
+
"searchPlaceholder": "Hae nimellä, omistajalla tai tiedostonimellä…",
|
|
7844
|
+
"hiddenOnly": "Vain piilotetut",
|
|
7845
|
+
"hiddenChip": "piilotettu",
|
|
7846
|
+
"empty": "Ei sovelluksia hakuehdoilla.",
|
|
7847
|
+
"colApp": "Sovellus",
|
|
7848
|
+
"colOwner": "Omistaja",
|
|
7849
|
+
"colSize": "Koko",
|
|
7850
|
+
"colDownloads": "Latauksia",
|
|
7851
|
+
"colStatus": "Tila",
|
|
7852
|
+
"statusHidden": "Operaattorin piilottama",
|
|
7853
|
+
"statusParked": "Parkissa",
|
|
7854
|
+
"statusLive": "Julkaistu",
|
|
7855
|
+
"byAt": "{by} · {at}",
|
|
7856
|
+
"hide": "Piilota",
|
|
7857
|
+
"restore": "Palauta",
|
|
7858
|
+
"hiddenOk": "Sovellus piilotettu julkisesta näkymästä.",
|
|
7859
|
+
"restoredOk": "Sovellus palautettu julkiseen näkymään.",
|
|
7860
|
+
"hideTitle": "Piilota sovellus",
|
|
7861
|
+
"hideConfirm": "Piilota",
|
|
7862
|
+
"hideExplain": "Tämä poistaa sovelluksen julkisesta katalogista, galleriasta, hausta ja suorasta latauksesta. Omistaja säilyttää kopion merkinnällä \"moderoitu operaattorin toimesta: piilotettu\", mutta ei voi poistaa piilotusta.",
|
|
7863
|
+
"reasonLabel": "Syy (näytetään omistajalle, valinnainen)",
|
|
7864
|
+
"reasonPlaceholder": "esim. Anonyymi / käytäntörikkomus",
|
|
7865
|
+
"delete": "Poista",
|
|
7866
|
+
"deletedOk": "Sovellus poistettu pysyvästi.",
|
|
7867
|
+
"deleteTitle": "Poista sovellus",
|
|
7868
|
+
"deleteConfirm": "Poista pysyvästi",
|
|
7869
|
+
"deleteWarn": "⚠️ Tämä poistaa sovelluksen ja kaikki sen versiot kokonaan solmusta. Tätä ei voi perua — myös omistaja menettää sen. Jos haluat vain piilottaa, käytä Piilota-toimintoa.",
|
|
7870
|
+
"deleteTypeLabel": "Vahvista kirjoittamalla tiedostonimi: {filename}"
|
|
7871
|
+
},
|
|
7515
7872
|
"security": {
|
|
7516
7873
|
"title": "Tietoturva",
|
|
7517
7874
|
"desc": "Hylätyt / karanteeniin laitetut lataukset ja muut tietoturvatapahtumat.",
|
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
* its distinct indigo accent and a permanently-dark sidebar, but all content
|
|
5
5
|
* surfaces map to global theme.css tokens so they flip with dark/light mode.
|
|
6
6
|
* @version-history
|
|
7
|
+
* v1.8.0 — 2026-06-25 — Applications tab: .adm-apps-rowactions (Hide/Restore + Delete row).
|
|
8
|
+
* v1.7.0 — 2026-06-24 — Applications moderation tab: .adm-apps-* (filters row,
|
|
9
|
+
* hidden-only toggle, dimmed hidden rows, modal actions).
|
|
7
10
|
* v1.6.0 — 2026-06-12 — Subdomains tab: .adm-subdomain-form create-form grid
|
|
8
11
|
* + .adm-subdomain-modal-actions (right-aligned type-to-confirm buttons).
|
|
9
12
|
* v1.5.0 — 2026-06-02 — Component unification (#13 tables): strip the dead
|
|
@@ -589,6 +592,13 @@
|
|
|
589
592
|
.adm-subdomain-form .adm-text-error { grid-column: 1 / -1; }
|
|
590
593
|
.adm-subdomain-modal-actions { justify-content: flex-end; }
|
|
591
594
|
|
|
595
|
+
/* Applications (moderation) tab */
|
|
596
|
+
.adm-apps-filters { gap: 12px; align-items: center; }
|
|
597
|
+
.adm-apps-toggle { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
|
|
598
|
+
.adm-apps-row-hidden { opacity: 0.6; }
|
|
599
|
+
.adm-apps-modal-actions { justify-content: flex-end; }
|
|
600
|
+
.adm-apps-rowactions { gap: 6px; flex-wrap: wrap; }
|
|
601
|
+
|
|
592
602
|
/* Active subtab button */
|
|
593
603
|
.adm-btn-active,
|
|
594
604
|
.adm-btn-active:hover { background: var(--accent); color: #fff; }
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Uses agd- prefix to avoid collisions with other profile styles.
|
|
5
5
|
* All colors use CSS variables from theme.css.
|
|
6
6
|
* @version-history
|
|
7
|
+
* v1.13.0 -- 2026-06-24 -- Secretary P5 (S-A): add .pf-agd-badge--specialist (specialist agent type badge).
|
|
7
8
|
* v1.12.0 -- 2026-06-22 -- Add .pf-agd-capwrap rule so the capabilities summary
|
|
8
9
|
* ("N tools · N skills · N langs") gets the card content inset (1rem) instead of
|
|
9
10
|
* sitting flush against the edge, plus a small top gap from the tag/badge strip.
|
|
@@ -1558,6 +1559,13 @@
|
|
|
1558
1559
|
color: var(--success, #10b981);
|
|
1559
1560
|
}
|
|
1560
1561
|
|
|
1562
|
+
/* Specialist badge -- marks a specialist agent type (Secretary P5 / S-A) */
|
|
1563
|
+
.pf .pf-agd-badge--specialist {
|
|
1564
|
+
background: var(--bg-dim, rgba(99, 102, 241, 0.12));
|
|
1565
|
+
color: var(--accent, #6366f1);
|
|
1566
|
+
font-weight: 600;
|
|
1567
|
+
}
|
|
1568
|
+
|
|
1561
1569
|
/* Mode badge -- distinguishes how the agent is used (added 2026-05-29) */
|
|
1562
1570
|
.pf .pf-agd-badge--mode {
|
|
1563
1571
|
text-transform: uppercase;
|
|
@@ -313,3 +313,44 @@
|
|
|
313
313
|
font-weight: 600;
|
|
314
314
|
margin: 0 0 0.75rem;
|
|
315
315
|
}
|
|
316
|
+
|
|
317
|
+
/* ── Company Secretary panel (Phase 6 slice 3) ── */
|
|
318
|
+
.mc-sec { display: flex; flex-direction: column; gap: 1rem; }
|
|
319
|
+
.mc-sec-id { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
|
|
320
|
+
.mc-sec-id code { font-size: 0.78rem; color: var(--text-dim); }
|
|
321
|
+
.mc-sec-brain { background: var(--bg-dim); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 0.85rem 1rem; }
|
|
322
|
+
.mc-lock-chip { font-size: 0.74rem; font-weight: 600; color: var(--text-dim); background: var(--card); border: 1px solid var(--border); border-radius: var(--radius-full); padding: 0.15rem 0.6rem; white-space: nowrap; }
|
|
323
|
+
.mc-sec-purpose { color: var(--text); font-size: 0.9rem; margin: 0.4rem 0 0.6rem; white-space: pre-wrap; }
|
|
324
|
+
.mc-sec-rules { margin: 0; padding-left: 1.1rem; display: flex; flex-direction: column; gap: 0.3rem; }
|
|
325
|
+
.mc-sec-rules li { color: var(--text); font-size: 0.86rem; }
|
|
326
|
+
.mc-sec-cap-list { list-style: none; margin: 0.3rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.4rem; }
|
|
327
|
+
.mc-sec-cap-list li { padding: 0.4rem 0; border-top: 1px solid var(--border); }
|
|
328
|
+
.mc-sec-scopes { font-size: 0.84rem; color: var(--text-dim); }
|
|
329
|
+
.mc-sec-scopes summary { cursor: pointer; }
|
|
330
|
+
.mc-sec-scope-tags { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.5rem; }
|
|
331
|
+
.mc-err { color: var(--danger); font-size: 0.85rem; margin: 0.5rem 0 0; }
|
|
332
|
+
|
|
333
|
+
/* ── Governance / cost & ROI (Phase 6 slice 2) ── */
|
|
334
|
+
.mc-gov { display: flex; flex-direction: column; gap: 1rem; }
|
|
335
|
+
.mc-gov-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 0.6rem; }
|
|
336
|
+
.mc-gov-kpi { background: var(--bg-dim); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 0.7rem 0.85rem; }
|
|
337
|
+
.mc-gov-kpi-value { font-size: 1.25rem; font-weight: 700; color: var(--text); }
|
|
338
|
+
.mc-gov-kpi-label { font-size: 0.74rem; color: var(--text-dim); margin-top: 0.2rem; }
|
|
339
|
+
.mc-gov-table { width: 100%; border-collapse: collapse; font-size: 0.86rem; }
|
|
340
|
+
.mc-gov-table th, .mc-gov-table td { text-align: left; padding: 0.45rem 0.6rem; border-bottom: 1px solid var(--border); }
|
|
341
|
+
.mc-gov-table th { color: var(--text-dim); font-weight: 600; font-size: 0.76rem; }
|
|
342
|
+
.mc-gov-table td:nth-child(n+2), .mc-gov-table th:nth-child(n+2) { text-align: right; }
|
|
343
|
+
.mc-gov-levers { display: flex; flex-wrap: wrap; gap: 0.4rem; }
|
|
344
|
+
.mc-gov-note { font-size: 0.8rem; color: var(--text-dim); border-left: 2px solid var(--border); padding-left: 0.7rem; margin: 0; }
|
|
345
|
+
|
|
346
|
+
/* ── Company model (Phase 6 slice 1) ── */
|
|
347
|
+
.mc-model { display: flex; flex-direction: column; gap: 1rem; }
|
|
348
|
+
.mc-model-build { display: flex; flex-direction: column; gap: 0.5rem; }
|
|
349
|
+
.mc-input { width: 100%; padding: 0.5rem 0.6rem; background: var(--bg-dim); color: var(--text); border: 1px solid var(--border); border-radius: var(--radius-sm); font-size: 0.9rem; box-sizing: border-box; font-family: inherit; }
|
|
350
|
+
.mc-model-actions { display: flex; flex-wrap: wrap; gap: 0.4rem; }
|
|
351
|
+
.mc-model-paste { display: flex; flex-direction: column; gap: 0.4rem; margin-top: 0.4rem; }
|
|
352
|
+
.mc-model-review { display: flex; align-items: center; gap: 0.5rem; background: var(--bg-dim); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 0.5rem 0.7rem; }
|
|
353
|
+
.mc-model-view { display: flex; flex-direction: column; gap: 0.9rem; }
|
|
354
|
+
.mc-model-view section { border-top: 1px solid var(--border); padding-top: 0.6rem; }
|
|
355
|
+
.mc-model-list { list-style: none; margin: 0.3rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.35rem; }
|
|
356
|
+
.mc-model-list li { color: var(--text); font-size: 0.88rem; }
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
* wallet, memory, agents, extensions, packages, knowledge, generator, and
|
|
5
5
|
* edit panels. Consumes theme.css tokens so it flips with dark/light mode.
|
|
6
6
|
* @version-history
|
|
7
|
+
* v2.8.0 — 2026-06-24 — Secretary P5 (S-C): .ext-instance-cfg-field/-label/-secret/-desc for the
|
|
8
|
+
* extension instance-create config form (masked secret fields).
|
|
7
9
|
* v2.7.0 — 2026-06-22 — Home "Usage & quotas" card: .pf-usage-card/.pf-usage-row/.pf-usage-bar/
|
|
8
10
|
* .pf-usage-fill (quota bars) + .pf-usage-chips/.pf-usage-chip (count chips).
|
|
9
11
|
* v2.6.0 — 2026-06-22 — Scalable Memory tab: .pf-mem-quota* (storage-usage bar), .pf-mem-size
|
|
@@ -1360,8 +1362,12 @@
|
|
|
1360
1362
|
.pf .ext-instance-row { display: flex; align-items: center; gap: .75rem; padding: .75rem; margin-bottom: .5rem; background: var(--surface, #F9FAFB); border: 1px solid var(--border, #E5E7EB); border-radius: 8px; }
|
|
1361
1363
|
.pf .ext-instance-name { font-weight: 600; font-size: .9rem; flex: 1; }
|
|
1362
1364
|
.pf .ext-instance-status { font-size: .8rem; color: var(--muted); }
|
|
1363
|
-
.pf .ext-instance-create { display: flex; gap: .5rem; margin-top: .75rem; align-items:
|
|
1365
|
+
.pf .ext-instance-create { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; align-items: flex-end; }
|
|
1364
1366
|
.pf .ext-instance-input { flex: 1; max-width: 300px; }
|
|
1367
|
+
.pf .ext-instance-cfg-field { display: flex; flex-direction: column; gap: .25rem; flex: 1 1 100%; }
|
|
1368
|
+
.pf .ext-instance-cfg-label { font-size: .8rem; font-weight: 600; display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
|
|
1369
|
+
.pf .ext-instance-cfg-secret { font-size: .72rem; font-weight: 600; color: var(--accent, #E8564A); }
|
|
1370
|
+
.pf .ext-instance-cfg-desc { font-size: .75rem; font-weight: 400; color: var(--muted); }
|
|
1365
1371
|
.pf .ext-hint { font-size: .8rem; color: var(--muted); margin-top: .5rem; }
|
|
1366
1372
|
.pf .ext-no-instances { font-size: .85rem; color: var(--muted); padding: .5rem 0; }
|
|
1367
1373
|
.pf .ext-endpoint-box { font-size: .85rem; padding: .75rem; background: var(--surface, #F9FAFB); border: 1px solid var(--border, #E5E7EB); border-radius: 8px; font-family: monospace; word-break: break-all; }
|