@promptbook/components 0.103.0-31 → 0.103.0-33
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/esm/index.es.js +157 -60
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/cli.index.d.ts +0 -2
- package/esm/typings/src/_packages/core.index.d.ts +2 -0
- package/esm/typings/src/_packages/types.index.d.ts +2 -2
- package/esm/typings/src/_packages/wizard.index.d.ts +0 -2
- package/esm/typings/src/collection/constructors/createCollectionFromDirectory.d.ts +1 -2
- package/esm/typings/src/execution/ExecutionTask.d.ts +12 -3
- package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +5 -0
- package/esm/typings/src/execution/createPipelineExecutor/20-executeTask.d.ts +5 -0
- package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +5 -0
- package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +5 -0
- package/esm/typings/src/execution/utils/logLlmCall.d.ts +8 -0
- package/esm/typings/src/playground/permanent/_boilerplate.d.ts +5 -0
- package/esm/typings/src/playground/permanent/agent-with-browser-playground.d.ts +5 -0
- package/esm/typings/src/playground/permanent/transpilers-playground.d.ts +5 -0
- package/esm/typings/src/playground/playground.d.ts +0 -3
- package/esm/typings/src/playground/playground1.d.ts +2 -0
- package/esm/typings/src/transpilers/_common/BookTranspiler.d.ts +26 -17
- package/esm/typings/src/transpilers/_common/BookTranspilerOptions.d.ts +2 -3
- package/esm/typings/src/transpilers/_common/register/$bookTranspilersRegister.d.ts +2 -2
- package/esm/typings/src/transpilers/openai/OpenAiSdkTranspiler.d.ts +9 -9
- package/esm/typings/src/types/LlmCall.d.ts +20 -0
- package/esm/typings/src/version.d.ts +1 -1
- package/package.json +1 -1
- package/umd/index.umd.js +157 -60
- package/umd/index.umd.js.map +1 -1
- package/esm/typings/src/transpilers/_common/BookTranspilerDefinition.d.ts +0 -37
- package/esm/typings/src/transpilers/langchain/LangchainTranspiler.d.ts +0 -7
- package/esm/typings/src/transpilers/langchain/register.d.ts +0 -15
package/esm/index.es.js
CHANGED
|
@@ -33,7 +33,7 @@ const BOOK_LANGUAGE_VERSION = '1.0.0';
|
|
|
33
33
|
* @generated
|
|
34
34
|
* @see https://github.com/webgptorg/promptbook
|
|
35
35
|
*/
|
|
36
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.103.0-
|
|
36
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.103.0-33';
|
|
37
37
|
/**
|
|
38
38
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
39
39
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -5715,7 +5715,7 @@ var css_248z$5 = ".BookEditor-module_BookEditor__s-0PU{width:100%}.BookEditor-mo
|
|
|
5715
5715
|
var styles$4 = {"BookEditor":"BookEditor-module_BookEditor__s-0PU","bookEditorContainer":"BookEditor-module_bookEditorContainer__wLMwM","isVerbose":"BookEditor-module_isVerbose__VQ6iL","bookEditorWrapper":"BookEditor-module_bookEditorWrapper__twppD","isBorderRadiusDisabled":"BookEditor-module_isBorderRadiusDisabled__h1I3v","dropOverlay":"BookEditor-module_dropOverlay__xWWoX","bookEditorActionbar":"BookEditor-module_bookEditorActionbar__KW6dc","fullscreen":"BookEditor-module_fullscreen__rktsl","button":"BookEditor-module_button__hS390"};
|
|
5716
5716
|
styleInject(css_248z$5);
|
|
5717
5717
|
|
|
5718
|
-
var PipelineCollection = [{title:"Prepare Knowledge from Markdown",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.book",formfactorName:"GENERIC",parameters:[{name:"knowledgeContent",description:"Markdown document content",isInput:true,isOutput:false},{name:"knowledgePieces",description:"The knowledge JSON object",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"knowledge",title:"Knowledge",content:"You are experienced data researcher, extract the important knowledge from the document.\n\n# Rules\n\n- Make pieces of information concise, clear, and easy to understand\n- One piece of information should be approximately 1 paragraph\n- Divide the paragraphs by markdown horizontal lines ---\n- Omit irrelevant information\n- Group redundant information\n- Write just extracted information, nothing else\n\n# The document\n\nTake information from this document:\n\n> {knowledgeContent}",resultingParameterName:"knowledgePieces",dependentParameterNames:["knowledgeContent"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Knowledge from Markdown\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.book`\n- INPUT PARAMETER `{knowledgeContent}` Markdown document content\n- OUTPUT PARAMETER `{knowledgePieces}` The knowledge JSON object\n\n## Knowledge\n\n<!-- TODO: [🍆] -FORMAT JSON -->\n\n```markdown\nYou are experienced data researcher, extract the important knowledge from the document.\n\n# Rules\n\n- Make pieces of information concise, clear, and easy to understand\n- One piece of information should be approximately 1 paragraph\n- Divide the paragraphs by markdown horizontal lines ---\n- Omit irrelevant information\n- Group redundant information\n- Write just extracted information, nothing else\n\n# The document\n\nTake information from this document:\n\n> {knowledgeContent}\n```\n\n`-> {knowledgePieces}`\n"}],sourceFile:"./books/prepare-knowledge-from-markdown.book"},{title:"Prepare Keywords",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-keywords.book",formfactorName:"GENERIC",parameters:[{name:"knowledgePieceContent",description:"The content",isInput:true,isOutput:false},{name:"keywords",description:"Keywords separated by comma",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"knowledge",title:"Knowledge",content:"You are experienced data researcher, detect the important keywords in the document.\n\n# Rules\n\n- Write just keywords separated by comma\n\n# The document\n\nTake information from this document:\n\n> {knowledgePieceContent}",resultingParameterName:"keywords",dependentParameterNames:["knowledgePieceContent"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Keywords\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-knowledge-keywords.book`\n- INPUT PARAMETER `{knowledgePieceContent}` The content\n- OUTPUT PARAMETER `{keywords}` Keywords separated by comma\n\n## Knowledge\n\n<!-- TODO: [🍆] -FORMAT JSON -->\n\n```markdown\nYou are experienced data researcher, detect the important keywords in the document.\n\n# Rules\n\n- Write just keywords separated by comma\n\n# The document\n\nTake information from this document:\n\n> {knowledgePieceContent}\n```\n\n`-> {keywords}`\n"}],sourceFile:"./books/prepare-knowledge-keywords.book"},{title:"Prepare Knowledge-piece Title",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-title.book",formfactorName:"GENERIC",parameters:[{name:"knowledgePieceContent",description:"The content",isInput:true,isOutput:false},{name:"title",description:"The title of the document",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"knowledge",title:"Knowledge",content:"You are experienced content creator, write best title for the document.\n\n# Rules\n\n- Write just title, nothing else\n- Write maximum 5 words for the title\n\n# The document\n\n> {knowledgePieceContent}",resultingParameterName:"title",expectations:{words:{min:1,max:8}},dependentParameterNames:["knowledgePieceContent"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Knowledge-piece Title\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-knowledge-title.book`\n- INPUT PARAMETER `{knowledgePieceContent}` The content\n- OUTPUT PARAMETER `{title}` The title of the document\n\n## Knowledge\n\n- EXPECT MIN 1 WORD\n- EXPECT MAX 8 WORDS\n\n```markdown\nYou are experienced content creator, write best title for the document.\n\n# Rules\n\n- Write just title, nothing else\n- Write maximum 5 words for the title\n\n# The document\n\n> {knowledgePieceContent}\n```\n\n`-> {title}`\n"}],sourceFile:"./books/prepare-knowledge-title.book"},{title:"Prepare Persona",pipelineUrl:"https://promptbook.studio/promptbook/prepare-persona.book",formfactorName:"GENERIC",parameters:[{name:"availableModels",description:"List of available model names together with their descriptions as JSON",isInput:true,isOutput:false},{name:"personaDescription",description:"Description of the persona",isInput:true,isOutput:false},{name:"modelsRequirements",description:"Specific requirements for the model",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"make-model-requirements",title:"Make modelRequirements",content:"You are an experienced AI engineer, you need to find the best models for virtual assistants:\n\n## Example\n\n```json\n[\n {\n \"modelName\": \"gpt-4o\",\n \"systemMessage\": \"You are experienced AI engineer and helpful assistant.\",\n \"temperature\": 0.7\n },\n {\n \"modelName\": \"claude-3-5-sonnet\",\n \"systemMessage\": \"You are a friendly and knowledgeable chatbot.\",\n \"temperature\": 0.5\n }\n]\n```\n\n## Instructions\n\n- Your output format is JSON array\n- Sort best-fitting models first\n- Omit any models that are not suitable\n- Write just the JSON, no other text should be present\n- Array contain items with following keys:\n - `modelName`: The name of the model to use\n - `systemMessage`: The system message to provide context to the model\n - `temperature`: The sampling temperature to use\n\n### Key `modelName`\n\nHere are the available models:\n\n```json\n{availableModels}\n```\n\n### Key `systemMessage`\n\nThe system message is used to communicate instructions or provide context to the model at the beginning of a conversation. It is displayed in a different format compared to user messages, helping the model understand its role in the conversation. The system message typically guides the model's behavior, sets the tone, or specifies desired output from the model. By utilizing the system message effectively, users can steer the model towards generating more accurate and relevant responses.\n\nFor example:\n\n> You are an experienced AI engineer and helpful assistant.\n\n> You are a friendly and knowledgeable chatbot.\n\n### Key `temperature`\n\nThe sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit.\n\nYou can pick a value between 0 and 2. For example:\n\n- `0.1`: Low temperature, extremely conservative and deterministic\n- `0.5`: Medium temperature, balanced between conservative and creative\n- `1.0`: High temperature, creative and bit random\n- `1.5`: Very high temperature, extremely creative and often chaotic and unpredictable\n- `2.0`: Maximum temperature, completely random and unpredictable, for some extreme creative use cases\n\n# The assistant\n\nTake this description of the persona:\n\n> {personaDescription}",resultingParameterName:"modelsRequirements",format:"JSON",dependentParameterNames:["availableModels","personaDescription"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Persona\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-persona.book`\n- INPUT PARAMETER `{availableModels}` List of available model names together with their descriptions as JSON\n- INPUT PARAMETER `{personaDescription}` Description of the persona\n- OUTPUT PARAMETER `{modelsRequirements}` Specific requirements for the model\n\n## Make modelRequirements\n\n- FORMAT JSON\n\n```markdown\nYou are an experienced AI engineer, you need to find the best models for virtual assistants:\n\n## Example\n\n\\`\\`\\`json\n[\n {\n \"modelName\": \"gpt-4o\",\n \"systemMessage\": \"You are experienced AI engineer and helpful assistant.\",\n \"temperature\": 0.7\n },\n {\n \"modelName\": \"claude-3-5-sonnet\",\n \"systemMessage\": \"You are a friendly and knowledgeable chatbot.\",\n \"temperature\": 0.5\n }\n]\n\\`\\`\\`\n\n## Instructions\n\n- Your output format is JSON array\n- Sort best-fitting models first\n- Omit any models that are not suitable\n- Write just the JSON, no other text should be present\n- Array contain items with following keys:\n - `modelName`: The name of the model to use\n - `systemMessage`: The system message to provide context to the model\n - `temperature`: The sampling temperature to use\n\n### Key `modelName`\n\nHere are the available models:\n\n\\`\\`\\`json\n{availableModels}\n\\`\\`\\`\n\n### Key `systemMessage`\n\nThe system message is used to communicate instructions or provide context to the model at the beginning of a conversation. It is displayed in a different format compared to user messages, helping the model understand its role in the conversation. The system message typically guides the model's behavior, sets the tone, or specifies desired output from the model. By utilizing the system message effectively, users can steer the model towards generating more accurate and relevant responses.\n\nFor example:\n\n> You are an experienced AI engineer and helpful assistant.\n\n> You are a friendly and knowledgeable chatbot.\n\n### Key `temperature`\n\nThe sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit.\n\nYou can pick a value between 0 and 2. For example:\n\n- `0.1`: Low temperature, extremely conservative and deterministic\n- `0.5`: Medium temperature, balanced between conservative and creative\n- `1.0`: High temperature, creative and bit random\n- `1.5`: Very high temperature, extremely creative and often chaotic and unpredictable\n- `2.0`: Maximum temperature, completely random and unpredictable, for some extreme creative use cases\n\n# The assistant\n\nTake this description of the persona:\n\n> {personaDescription}\n```\n\n`-> {modelsRequirements}`\n"}],sourceFile:"./books/prepare-persona.book"},{title:"Prepare Title",pipelineUrl:"https://promptbook.studio/promptbook/prepare-title.book",formfactorName:"GENERIC",parameters:[{name:"book",description:"The book to prepare the title for",isInput:true,isOutput:false},{name:"title",description:"Best title for the book",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"make-title",title:"Make title",content:"Make best title for given text which describes the workflow:\n\n## Rules\n\n- Write just title, nothing else\n- Title should be concise and clear - Write maximum ideally 2 words, maximum 5 words\n- Title starts with emoticon\n- Title should not mention the input and output of the workflow but the main purpose of the workflow\n _For example, not \"✍ Convert Knowledge-piece to title\" but \"✍ Title\"_\n\n## The workflow\n\n> {book}",resultingParameterName:"title",expectations:{words:{min:1,max:8},lines:{min:1,max:1}},dependentParameterNames:["book"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Title\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-title.book`\n- INPUT PARAMETER `{book}` The book to prepare the title for\n- OUTPUT PARAMETER `{title}` Best title for the book\n\n## Make title\n\n- EXPECT MIN 1 Word\n- EXPECT MAX 8 Words\n- EXPECT EXACTLY 1 Line\n\n```markdown\nMake best title for given text which describes the workflow:\n\n## Rules\n\n- Write just title, nothing else\n- Title should be concise and clear - Write maximum ideally 2 words, maximum 5 words\n- Title starts with emoticon\n- Title should not mention the input and output of the workflow but the main purpose of the workflow\n _For example, not \"✍ Convert Knowledge-piece to title\" but \"✍ Title\"_\n\n## The workflow\n\n> {book}\n```\n\n`-> {title}`\n"}],sourceFile:"./books/prepare-title.book"},{title:"📊 Curriculum Audit",pipelineUrl:"https://promptbook.studio/promptbook//examples/lsvp-asistent.book",formfactorName:"GENERIC",parameters:[{name:"result",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"prompt",title:"Prompt",content:"Asistent pro LŠVP\n\nPERSONA Jsi asistent pro RVP Lyceum v rámci Národního pedagogického institutu České Republiky\nMETA IMAGE https://edulk.cz/getFile/id:475818/type:large/02%20zna%C4%8Dka%20npi.jpg\nRULE Pokud jsi nejsi jistý, napiš nevím\nKNOWLEDGE ./241129_Lyceum_final.pdf\nCONTEXT Obecně dokážeš řešit libovolné ŠVP, aktuálně řešíš {Školní vzdělávací program LYCEUM}\nRULE Z {Porovnání RVP a ŠVP - postup} je nejdůležitější fáze 3\nKNOWLEDGE {Školní vzdělávací program LYCEUM} ./ŠVP Lyceum - Finance v digitální době.pdf\nKNOWLEDGE @Slovník\n\n**Interní slovník - RVP/ŠVP**\n\n**RVP**\n\nRámcový vzdělávací program pro obor vzdělání Lyceum je dokument na národní úrovni, který formuluje požadavky na školní vzdělávací programy ve formě především očekávaných výsledků učení, kterých mají žáci absolvováním tohoto programu na dané škole dosáhnout.\n\n**ŠVP**\n\nŠkolní vzdělávací program pro obor vzdělání Lyceum je dokument každé jednotlivé školy, který popisuje v jakých vyučovacích předmětech/ vzdělávacích modulech a v jakých ročnících budou požadované očekávané výsledky učení naplněny. Zároveň formuluje další očekávané výsledky učení, které naplňují disponibilní část vyučovacího času určeného RVP pro tento obor vzdělání.\n\n**Očekávaný výsledek učení (OVU)**\n\nVyjadřuje jednotlivý požadavek na to, co mají žáci umět na konci vzdělávacího programu, tzn. jejich požadované kompetence. Je vyjádřen formulací, která je uvozena činnostním slovesem a dále obsahuje předmět této činnosti. Formulace je konkretizována resp. doplněna zpravidla formou odrážek vymezením dílčích znalostí, dovedností, postojů, jejichž splnění je předpokladem dosažení OVU jako celku.\n\n_Příklad:_\n\n<div class=\"joplin-table-wrapper\"><table><tbody><tr><th><p><strong>Žák/žákyně řídí realizaci jednoduchého projektu</strong></p></th></tr><tr><td><ul><li>naplánuje aktivity projektu</li></ul></td></tr><tr><td><ul><li>navrhne rozpočet projektu vzhledem k navrženým aktivitám</li></ul></td></tr><tr><td><ul><li>stanoví základní ukazatele a sleduje jejich naplňování</li></ul></td></tr><tr><td><ul><li>vede projektový tým</li></ul></td></tr><tr><td><ul><li>uvede, jak by řešil krizové situace v projektu</li></ul></td></tr><tr><td><ul><li>vyhodnotí úspěšnost projektu</li></ul></td></tr></tbody></table></div>\n\n**Vzdělávací oblasti**\n\nOčekávané výsledky učení jsou v **_RVP členěny do 4 vzdělávacích oblastí_**, které tvoří společný všeobecně vzdělávací základ:\n\n- Osobnostní rozvoj, vzdělávání ke zdraví, bezpečí a produktivnímu pracovnímu životu (kariéře)\n- Komunikační a jazykové vzdělávání\n- Aplikované vzdělávání STEM (Science, Technology, Engeneering, Math), tj. přírodní vědy, informatika, technika, matematika\n- Prakticky orientované vzdělávání společenskovědní a humanitní\n\nKaždá vzdělávací oblast se dále člení na okruhy, v jejichž rámci jsou OVU samostatně číslované.\n\n<div class=\"joplin-table-wrapper\"><table><tbody><tr><th rowspan=\"21\"><ul><li>Prakticky orientované vzdělávání společenskovědní a humanitní</li></ul></th><th rowspan=\"21\"><p><strong>Člověk, ekonomie a podnikání</strong></p></th><th rowspan=\"7\"><p><strong>1</strong></p></th><th><p><strong>zpracuje podklady související s podnikáním</strong></p></th></tr><tr><td><p>připraví podnikatelský záměr</p></td></tr><tr><td><p>sestaví zakladatelský rozpočet</p></td></tr><tr><td><p>zkalkuluje cenu zboží nebo služby</p></td></tr><tr><td><p>vysvětlí na příkladu základní povinnosti podnikatele vůči státu a zaměstnancům</p></td></tr><tr><td><p>vede daňovou evidenci</p></td></tr><tr><td><p>vysvětlí na příkladech etiku v podnikání</p></td></tr><tr><td rowspan=\"7\"><p><strong>2</strong></p></td><td><p><strong>řídí realizaci jednoduchého projektu</strong></p></td></tr><tr><td><p>naplánuje aktivity projektu</p></td></tr><tr><td><p>navrhne rozpočet projektu vzhledem k navrženým aktivitám</p></td></tr><tr><td><p>stanoví základní ukazatele a sleduje jejich naplňování</p></td></tr><tr><td><p>vede projektový tým</p></td></tr><tr><td><p>uvede, jak by řešil krizové situace v projektu</p></td></tr><tr><td><p>vyhodnotí úspěšnost projektu</p></td></tr><tr><td rowspan=\"7\"><p><strong>3</strong></p></td><td><p><strong>aplikuje ekonomické teorie v osobním a profesním životě</strong></p></td></tr><tr><td><p>vysvětlí základní ekonomické otázky</p></td></tr><tr><td><p>vysvětí stanovení rovnovážné ceny na dokonalém i nedokonalém trhu</p></td></tr><tr><td><p>charakterizuje výrobní faktory a vysvětlí hranici produkčních možností a náklady obětované příležitosti</p></td></tr><tr><td><p>uvede nejdůležitější makroekonomické pojmy a vliv jejich výše na kvalitu života a podnikání v daném státě</p></td></tr><tr><td><p>vysvětlí podstatu inflace a její důsledky na finanční situaci obyvatel a na příkladu ukáže jak se bránit jejím nepříznivým důsledkům</p></td></tr><tr><td><p>uvede hlavní výhody a nevýhody mezinárodního obchodu a vliv ochranářských opatření na ekonomickou situaci dané země</p></td></tr><tr><td></td><td></td><td><p><strong>4</strong></p></td><td><p>Atd.</p></td></tr></tbody></table></div>\n\n**Vyučovací předmět / vzdělávací modul**\n\nOčekávané výsledky učení jsou v **ŠVP** členěny do vyučovacích předmětů nebo vzdělávacích modulů, které jsou dále zařazeny do jednoho nebo více ročníků 4letého studia. Vyučovací předmět / vzdělávací modul tvoří vyučovací jednotku, kde jsou očekávané výsledky učení dále rozpracovány pro potřeby výuky podle následující šablony\n\n| **A. VSTUPNÍ ČÁST** |\n| --- |\n| **1\\. Název** |\n| **2\\. Kód** (kódy by měly být navázány na obory vzdělání a výsledky učení) |\n| **2a) Kategorie vzdělání** - v případě, že nebude součástí kódu |\n| **3\\. Typ vyučovací jednotky** (modul, předmět, stáž apod.) |\n| **4\\. Délka** (počet hodin - dělitelný čtyřmi (optimální modul 16, 32 hodin = týden výuky) |\n| **5\\. Platnost** (datum, od kterého platí) |\n| **6\\. Vstupní předpoklady** (vymezení požadované úrovně vstupních vědomostí a dovedností, které jsou předpokladem úspěšného studia) |\n| |\n| **B. JÁDRO VYUČOVACÍ JEDNOTKY** |\n| **1\\. Charakteristika** (stručná anotace popisující obecné cíle a pojetí) |\n| **2\\. Očekávané výsledky učení a jejich indikátory (převzaté z RVP nebo dále konkretizované)** |\n| **3\\. Podpora rozvoje klíčových kompetencí a základních gramotností** (které klíčové kompetence jsou v rozvíjeny) |\n| **4\\. Obsah vzdělávání** (rozpis učiva) |\n| **5\\. Vzdělávací strategie** (strategie výuky, resp. učební činnosti žáků, které jsou doporučené pro dosažení výsledků) |\n| |\n| **C. VÝSTUPNÍ ČÁST** |\n| **1\\. Způsob ověřování dosažených výsledků** (ve vazbě na jednotlivé výsledky učení) |\n| **2\\. Kritéria hodnocení** (co znamená splnění výsledků učení, kdy je splněna celá vyučovací jednotka, kritéria pro známky, příp. procentuální, slovní hodnocení) |\n| **3\\. Doporučená studijní literatura, odkazy na ilustrační zdroje** |\n| **4\\. Poznámky** |\n\n**Soulad OVU RVP a ŠVP**\n\nTento soulad je předmětem zjišťování. Soulad nastává, jestliže jsou očekávané výsledky učení z jednotlivých vzdělávacích oblastí RVP **obsaženy** ve vyučovacích předmětech/ vzdělávacích modulech ŠVP jednotlivých škol, tzn. že v ŠVP se objevuje jejich formulace buď v doslovném nebo podobném znění v jednom nebo více vyučovacích předmětech/ vzdělávacích modulech.\n\n_Příklad souladu:_\n\nRVP ŠVP - komunikace a marketing (SŠ obchodní Č.\n\n| **2** | **řídí realizaci jednoduchého projektu** |\n| --- | --- |\n| naplánuje aktivity projektu |\n| navrhne rozpočet projektu vzhledem k navrženým aktivitám |\n| stanoví základní ukazatele a sleduje jejich naplňování |\n| vede projektový tým |\n| uvede, jak by řešil krizové situace v projektu |\n| vyhodnotí úspěšnost projektu |\n\nKNOWLEDGE {Porovnání RVP a ŠVP - postup}\n\n\n# AUDITNÍ PROTOKOL ŠVP-RVP\n\n# (POPIS KONTROLNÍHO ALGORITMU)\n\nMetodika je určena pro **Kvantifikaci Shody** školního vzdělávacího programu (ŠVP) s Rámcovým vzdělávacím programem (RVP).\n\n## FÁZE 1: VALIDACE DOKUMENTACE\n\n**Cíl:** Ověřit platnost, aktuálnost a strukturu zdrojových dokumentů.\n\n- **RVP Verifikace:** Otevřít aktuální verzi RVP (např. RVP ZV/G/SOŠ).\n- **Typová shoda:** Ověřit, že RVP se vztahuje k danému typu školy.\n- **ŠVP Dimenze:** Identifikovat a izolovat relevantní části ŠVP: Profil absolventa, Klíčové kompetence (KK), Vzdělávací oblasti (VO), případně Učební plán (UP).\n- **Verzování:** Potvrdit, že obě verze (RVP a ŠVP) jsou nejnovější a platné (včetně dodatků RVP).\n\n## FÁZE 2: DATABÁZOVÉ MAPOVÁNÍ VÝSTUPŮ (MASTER MATICE)\n\n**Cíl:** Vytvořit systémovou databázi pro křížové porovnání všech povinných komponent RVP se ŠVP.\n\n- **Dekompozice RVP:** Rozložit RVP na základní povinné komponenty: Klíčové kompetence, Vzdělávací oblasti a obory, Očekávané výstupy (OVU), Průřezová témata (PT).\n- **Přiřazovací mapa:** Vytvořit hlavní kontrolní matici (Master Matice) pro záznam vazeb.\n\n| Oblast RVP | Výstup RVP (OVU) | Odpovídající Část ŠVP (Předmět/Ročník) | Konkrétní Tématický Celek v ŠVP | Stav Shody (Protokol) |\n| --- | --- | --- | --- | --- |\n| ... | ... | ... | ... | ... |\n| --- | --- | --- | --- | --- |\n\n## FÁZE 3: ALGORITMICKÁ KONTROLA POKRYTÍ A HLOUBKY\n\n**Cíl:** Posoudit, zda každý povinný výstup RVP je adekvátně reflektován v obsahu ŠVP, a přidělit bodovou hodnotu pro kvantifikaci.\n\n- **Audit OVU:** Projít každý jednotlivý Očekávaný výstup (OVU) z RVP.\n- **Kódování stavu a bodování:** U každého OVU v matici označit stav pokrytí dle následujícího schématu:\n\n| Kód (Protokol) | Popis (Kvalitativní zjištění) | Bodová hodnota (Kvantifikace) |\n| --- | --- | --- |\n| ✅ | Plná shoda (Výstup pokryt v plném rozsahu, odpovídající úrovni RVP) | 1,0 |\n| --- | --- | --- |\n| ⚠️ | Částečná shoda (Formální pokrytí, omezený rozsah, chybná návaznost) | 0,5 |\n| --- | --- | --- |\n| ❌ | Absence (Výstup zcela chybí v obsahu ŠVP) | 0,0 |\n| --- | --- | --- |\n\n- **Defektologie ŠVP:** Identifikovat a zaznamenat deficity ŠVP: Chybějící výstupy (❌), Sémantické překryvy, Přetížení obsahu.\n- **Kvalitativní posun:** Ověřit, zda je formulace výstupů v ŠVP **aktivní, měřitelná a v souladu** s úrovní RVP.\n\n## FÁZE 4: STRUKTURÁLNÍ VERIFIKACE NÁVAZNOSTI (VERTIKÁLA/HORIZONTÁLA)\n\n**Cíl:** Zkontrolovat logickou posloupnost a provázanost učiva v rámci ŠVP.\n\n- **Vertikální Kontrola:** Ověřit posloupnost OVU a učiva uvnitř jednoho předmětu/oblasti (postup od jednodušších ke složitějším konceptům napříč ročníky).\n- **Horizontální Kontrola:** Zkontrolovat logické provázání napříč vzdělávacími oblastmi a předměty (např. fyzika ↔ matematika).\n- **PT Integrace:** Audit reálné integrace Průřezových témat (PT) do konkrétních částí obsahu, metod a projektů.\n\n## FÁZE 5: ANALÝZA ŠKOLNÍ PROFILACE A ROZŠÍŘENÍ RVP\n\n**Cíl:** Validovat, že profilace školy je **v souladu** s RVP a nejedná se o **rozpor**.\n\n- **Nekonfliktnost:** Porovnat definovaný Profil absolventa školy s Klíčovými kompetencemi RVP. Profil ŠVP musí RVP rozvíjet, nikoli mu odporovat.\n- **Modularita:** Zkontrolovat, zda volitelné předměty a rozšiřující moduly logicky navazují na vzdělávací oblasti RVP.\n- **Implementace specializace:** Popisně uvést, jak je školní profilace (např. STEM zaměření, projektová výuka) integrována do OVU a kompetencí definovaných RVP.\n\n## FÁZE 6: GENERÁTOR ZÁVĚREČNÉ ZPRÁVY A KVANTIFIKACE\n\n**Cíl:** Syntetizovat výsledky, kvantifikovat soulad a generovat závazné návrhy na korekce.\n\n### 6.1 Kvantifikace Souladu\n\nVypočítat Index shody (IS) na základě bodového hodnocení (Fáze 3):\n\n### 6.2 Interpretace Indexu Shody (IS)\n\nKlasifikace souladu pro standardizované vyhodnocení:\n\n| Interval IS | Klasifikace souladu | Popis |\n| --- | --- | --- |\n| 95-100 % | Výborný soulad | ŠVP plně odpovídá RVP, pouze stylistické nebo formální rozdíly. |\n| --- | --- | --- |\n| 85-94 % | Dobrá shoda | ŠVP pokrývá všechny klíčové výstupy, menší korekce nutné. |\n| --- | --- | --- |\n| 70-84 % | Částečná shoda | Významné nedostatky v některých oblastech, nutná revize obsahu. |\n| --- | --- | --- |\n| < 70 % | Kritická neshoda | ŠVP neplní rámcové požadavky, ohrožuje legislativní soulad. |\n| --- | --- | --- |\n\n### 6.3 Doplňkové Indexy\n\nVypočítat následující doplňkové indexy pro detailní kvalitativní analýzu:\n\n- **Index kompetenčního souladu (IKS):** Poměr pokrytí klíčových kompetencí RVP v ŠVP.\n- **Index průřezové integrace (IPI):** Míra reálné integrace průřezových témat do výuky.\n- **Index hloubky pokrytí (IHP):** Procento výstupů, které jsou v ŠVP rozvedeny na konkrétní výukové cíle (měřitelné, aktivní formulace).\n- **Index profilové rozšiřitelnosti (IPR):** Kolik rozšiřujících nebo profilových výstupů přesahuje rámec RVP, aniž by narušily jeho strukturu.\n\n### 6.4 Vizuální výstupy\n\nZajistit generování následujících vizualizací pro Závěrečnou zprávu:\n\n- Graf pokrytí po vzdělávacích oblastech (Sloupcový graf IS pro VO).\n- Pavoukový diagram Klíčových kompetencí (RVP vs. ŠVP).\n- Mapa defektů (Vizualizace ❌ a ⚠️ výstupů).\n\n### 6.5 Struktura Závěrečné Zprávy\n\nZpráva musí být strukturována dle standardizovaného formátu:\n\n| Oddíl | Obsah |\n| --- | --- |\n| A. Identifikace | Název školy, IZO, typ školy, datum revize, zpracovatel, verze ŠVP a RVP. |\n| --- | --- |\n| B. Shrnutí výsledků | Celkový Index Shody (IS), hlavní závěry a doporučení. |\n| --- | --- |\n| C. Kvantitativní analýza | Přehled IS v % dle kategorií OVU / VO / kompetencí. |\n| --- | --- |\n| D. Kvalitativní analýza | Slovní zhodnocení kvality souladu (formulace, obtížnost, integrace PT). |\n| --- | --- |\n| E. Rizikové oblasti | Přehled nalezených defektů (chybějící OVU, přetížení, formální shoda). |\n| --- | --- |\n| F. Návrhy opatření (Korekční plán) | Přesné návrhy změn - **Co, Kde, Kdo** má upravit, včetně termínu. |\n| --- | --- |\n| G. Přílohy | Master Matice (Fáze 2-3), revizní tabulka, výstupní grafy a metriky. |\n| --- | --- |\n\n\n\n\n.",resultingParameterName:"result",dependentParameterNames:[]}],personas:[],preparations:[{id:1,promptbookVersion:"0.103.0-30",usage:{price:{value:0},input:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}},output:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}}}}],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"Asistent pro LŠVP\n\nPERSONA Jsi asistent pro RVP Lyceum v rámci Národního pedagogického institutu České Republiky\nMETA IMAGE https://edulk.cz/getFile/id:475818/type:large/02%20zna%C4%8Dka%20npi.jpg\nRULE Pokud jsi nejsi jistý, napiš nevím\nKNOWLEDGE ./241129_Lyceum_final.pdf\nCONTEXT Obecně dokážeš řešit libovolné ŠVP, aktuálně řešíš {Školní vzdělávací program LYCEUM}\nRULE Z {Porovnání RVP a ŠVP - postup} je nejdůležitější fáze 3\nKNOWLEDGE {Školní vzdělávací program LYCEUM} ./ŠVP Lyceum - Finance v digitální době.pdf\nKNOWLEDGE @Slovník\n\n**Interní slovník - RVP/ŠVP**\n\n**RVP**\n\nRámcový vzdělávací program pro obor vzdělání Lyceum je dokument na národní úrovni, který formuluje požadavky na školní vzdělávací programy ve formě především očekávaných výsledků učení, kterých mají žáci absolvováním tohoto programu na dané škole dosáhnout.\n\n**ŠVP**\n\nŠkolní vzdělávací program pro obor vzdělání Lyceum je dokument každé jednotlivé školy, který popisuje v jakých vyučovacích předmětech/ vzdělávacích modulech a v jakých ročnících budou požadované očekávané výsledky učení naplněny. Zároveň formuluje další očekávané výsledky učení, které naplňují disponibilní část vyučovacího času určeného RVP pro tento obor vzdělání.\n\n**Očekávaný výsledek učení (OVU)**\n\nVyjadřuje jednotlivý požadavek na to, co mají žáci umět na konci vzdělávacího programu, tzn. jejich požadované kompetence. Je vyjádřen formulací, která je uvozena činnostním slovesem a dále obsahuje předmět této činnosti. Formulace je konkretizována resp. doplněna zpravidla formou odrážek vymezením dílčích znalostí, dovedností, postojů, jejichž splnění je předpokladem dosažení OVU jako celku.\n\n_Příklad:_\n\n<div class=\"joplin-table-wrapper\"><table><tbody><tr><th><p><strong>Žák/žákyně řídí realizaci jednoduchého projektu</strong></p></th></tr><tr><td><ul><li>naplánuje aktivity projektu</li></ul></td></tr><tr><td><ul><li>navrhne rozpočet projektu vzhledem k navrženým aktivitám</li></ul></td></tr><tr><td><ul><li>stanoví základní ukazatele a sleduje jejich naplňování</li></ul></td></tr><tr><td><ul><li>vede projektový tým</li></ul></td></tr><tr><td><ul><li>uvede, jak by řešil krizové situace v projektu</li></ul></td></tr><tr><td><ul><li>vyhodnotí úspěšnost projektu</li></ul></td></tr></tbody></table></div>\n\n**Vzdělávací oblasti**\n\nOčekávané výsledky učení jsou v **_RVP členěny do 4 vzdělávacích oblastí_**, které tvoří společný všeobecně vzdělávací základ:\n\n- Osobnostní rozvoj, vzdělávání ke zdraví, bezpečí a produktivnímu pracovnímu životu (kariéře)\n- Komunikační a jazykové vzdělávání\n- Aplikované vzdělávání STEM (Science, Technology, Engeneering, Math), tj. přírodní vědy, informatika, technika, matematika\n- Prakticky orientované vzdělávání společenskovědní a humanitní\n\nKaždá vzdělávací oblast se dále člení na okruhy, v jejichž rámci jsou OVU samostatně číslované.\n\n<div class=\"joplin-table-wrapper\"><table><tbody><tr><th rowspan=\"21\"><ul><li>Prakticky orientované vzdělávání společenskovědní a humanitní</li></ul></th><th rowspan=\"21\"><p><strong>Člověk, ekonomie a podnikání</strong></p></th><th rowspan=\"7\"><p><strong>1</strong></p></th><th><p><strong>zpracuje podklady související s podnikáním</strong></p></th></tr><tr><td><p>připraví podnikatelský záměr</p></td></tr><tr><td><p>sestaví zakladatelský rozpočet</p></td></tr><tr><td><p>zkalkuluje cenu zboží nebo služby</p></td></tr><tr><td><p>vysvětlí na příkladu základní povinnosti podnikatele vůči státu a zaměstnancům</p></td></tr><tr><td><p>vede daňovou evidenci</p></td></tr><tr><td><p>vysvětlí na příkladech etiku v podnikání</p></td></tr><tr><td rowspan=\"7\"><p><strong>2</strong></p></td><td><p><strong>řídí realizaci jednoduchého projektu</strong></p></td></tr><tr><td><p>naplánuje aktivity projektu</p></td></tr><tr><td><p>navrhne rozpočet projektu vzhledem k navrženým aktivitám</p></td></tr><tr><td><p>stanoví základní ukazatele a sleduje jejich naplňování</p></td></tr><tr><td><p>vede projektový tým</p></td></tr><tr><td><p>uvede, jak by řešil krizové situace v projektu</p></td></tr><tr><td><p>vyhodnotí úspěšnost projektu</p></td></tr><tr><td rowspan=\"7\"><p><strong>3</strong></p></td><td><p><strong>aplikuje ekonomické teorie v osobním a profesním životě</strong></p></td></tr><tr><td><p>vysvětlí základní ekonomické otázky</p></td></tr><tr><td><p>vysvětí stanovení rovnovážné ceny na dokonalém i nedokonalém trhu</p></td></tr><tr><td><p>charakterizuje výrobní faktory a vysvětlí hranici produkčních možností a náklady obětované příležitosti</p></td></tr><tr><td><p>uvede nejdůležitější makroekonomické pojmy a vliv jejich výše na kvalitu života a podnikání v daném státě</p></td></tr><tr><td><p>vysvětlí podstatu inflace a její důsledky na finanční situaci obyvatel a na příkladu ukáže jak se bránit jejím nepříznivým důsledkům</p></td></tr><tr><td><p>uvede hlavní výhody a nevýhody mezinárodního obchodu a vliv ochranářských opatření na ekonomickou situaci dané země</p></td></tr><tr><td></td><td></td><td><p><strong>4</strong></p></td><td><p>Atd.</p></td></tr></tbody></table></div>\n\n**Vyučovací předmět / vzdělávací modul**\n\nOčekávané výsledky učení jsou v **ŠVP** členěny do vyučovacích předmětů nebo vzdělávacích modulů, které jsou dále zařazeny do jednoho nebo více ročníků 4letého studia. Vyučovací předmět / vzdělávací modul tvoří vyučovací jednotku, kde jsou očekávané výsledky učení dále rozpracovány pro potřeby výuky podle následující šablony\n\n| **A. VSTUPNÍ ČÁST** |\n| --- |\n| **1\\. Název** |\n| **2\\. Kód** (kódy by měly být navázány na obory vzdělání a výsledky učení) |\n| **2a) Kategorie vzdělání** - v případě, že nebude součástí kódu |\n| **3\\. Typ vyučovací jednotky** (modul, předmět, stáž apod.) |\n| **4\\. Délka** (počet hodin - dělitelný čtyřmi (optimální modul 16, 32 hodin = týden výuky) |\n| **5\\. Platnost** (datum, od kterého platí) |\n| **6\\. Vstupní předpoklady** (vymezení požadované úrovně vstupních vědomostí a dovedností, které jsou předpokladem úspěšného studia) |\n| |\n| **B. JÁDRO VYUČOVACÍ JEDNOTKY** |\n| **1\\. Charakteristika** (stručná anotace popisující obecné cíle a pojetí) |\n| **2\\. Očekávané výsledky učení a jejich indikátory (převzaté z RVP nebo dále konkretizované)** |\n| **3\\. Podpora rozvoje klíčových kompetencí a základních gramotností** (které klíčové kompetence jsou v rozvíjeny) |\n| **4\\. Obsah vzdělávání** (rozpis učiva) |\n| **5\\. Vzdělávací strategie** (strategie výuky, resp. učební činnosti žáků, které jsou doporučené pro dosažení výsledků) |\n| |\n| **C. VÝSTUPNÍ ČÁST** |\n| **1\\. Způsob ověřování dosažených výsledků** (ve vazbě na jednotlivé výsledky učení) |\n| **2\\. Kritéria hodnocení** (co znamená splnění výsledků učení, kdy je splněna celá vyučovací jednotka, kritéria pro známky, příp. procentuální, slovní hodnocení) |\n| **3\\. Doporučená studijní literatura, odkazy na ilustrační zdroje** |\n| **4\\. Poznámky** |\n\n**Soulad OVU RVP a ŠVP**\n\nTento soulad je předmětem zjišťování. Soulad nastává, jestliže jsou očekávané výsledky učení z jednotlivých vzdělávacích oblastí RVP **obsaženy** ve vyučovacích předmětech/ vzdělávacích modulech ŠVP jednotlivých škol, tzn. že v ŠVP se objevuje jejich formulace buď v doslovném nebo podobném znění v jednom nebo více vyučovacích předmětech/ vzdělávacích modulech.\n\n_Příklad souladu:_\n\nRVP ŠVP - komunikace a marketing (SŠ obchodní Č.\n\n| **2** | **řídí realizaci jednoduchého projektu** |\n| --- | --- |\n| naplánuje aktivity projektu |\n| navrhne rozpočet projektu vzhledem k navrženým aktivitám |\n| stanoví základní ukazatele a sleduje jejich naplňování |\n| vede projektový tým |\n| uvede, jak by řešil krizové situace v projektu |\n| vyhodnotí úspěšnost projektu |\n\nKNOWLEDGE {Porovnání RVP a ŠVP - postup}\n\n\n# AUDITNÍ PROTOKOL ŠVP-RVP\n\n# (POPIS KONTROLNÍHO ALGORITMU)\n\nMetodika je určena pro **Kvantifikaci Shody** školního vzdělávacího programu (ŠVP) s Rámcovým vzdělávacím programem (RVP).\n\n## FÁZE 1: VALIDACE DOKUMENTACE\n\n**Cíl:** Ověřit platnost, aktuálnost a strukturu zdrojových dokumentů.\n\n- **RVP Verifikace:** Otevřít aktuální verzi RVP (např. RVP ZV/G/SOŠ).\n- **Typová shoda:** Ověřit, že RVP se vztahuje k danému typu školy.\n- **ŠVP Dimenze:** Identifikovat a izolovat relevantní části ŠVP: Profil absolventa, Klíčové kompetence (KK), Vzdělávací oblasti (VO), případně Učební plán (UP).\n- **Verzování:** Potvrdit, že obě verze (RVP a ŠVP) jsou nejnovější a platné (včetně dodatků RVP).\n\n## FÁZE 2: DATABÁZOVÉ MAPOVÁNÍ VÝSTUPŮ (MASTER MATICE)\n\n**Cíl:** Vytvořit systémovou databázi pro křížové porovnání všech povinných komponent RVP se ŠVP.\n\n- **Dekompozice RVP:** Rozložit RVP na základní povinné komponenty: Klíčové kompetence, Vzdělávací oblasti a obory, Očekávané výstupy (OVU), Průřezová témata (PT).\n- **Přiřazovací mapa:** Vytvořit hlavní kontrolní matici (Master Matice) pro záznam vazeb.\n\n| Oblast RVP | Výstup RVP (OVU) | Odpovídající Část ŠVP (Předmět/Ročník) | Konkrétní Tématický Celek v ŠVP | Stav Shody (Protokol) |\n| --- | --- | --- | --- | --- |\n| ... | ... | ... | ... | ... |\n| --- | --- | --- | --- | --- |\n\n## FÁZE 3: ALGORITMICKÁ KONTROLA POKRYTÍ A HLOUBKY\n\n**Cíl:** Posoudit, zda každý povinný výstup RVP je adekvátně reflektován v obsahu ŠVP, a přidělit bodovou hodnotu pro kvantifikaci.\n\n- **Audit OVU:** Projít každý jednotlivý Očekávaný výstup (OVU) z RVP.\n- **Kódování stavu a bodování:** U každého OVU v matici označit stav pokrytí dle následujícího schématu:\n\n| Kód (Protokol) | Popis (Kvalitativní zjištění) | Bodová hodnota (Kvantifikace) |\n| --- | --- | --- |\n| ✅ | Plná shoda (Výstup pokryt v plném rozsahu, odpovídající úrovni RVP) | 1,0 |\n| --- | --- | --- |\n| ⚠️ | Částečná shoda (Formální pokrytí, omezený rozsah, chybná návaznost) | 0,5 |\n| --- | --- | --- |\n| ❌ | Absence (Výstup zcela chybí v obsahu ŠVP) | 0,0 |\n| --- | --- | --- |\n\n- **Defektologie ŠVP:** Identifikovat a zaznamenat deficity ŠVP: Chybějící výstupy (❌), Sémantické překryvy, Přetížení obsahu.\n- **Kvalitativní posun:** Ověřit, zda je formulace výstupů v ŠVP **aktivní, měřitelná a v souladu** s úrovní RVP.\n\n## FÁZE 4: STRUKTURÁLNÍ VERIFIKACE NÁVAZNOSTI (VERTIKÁLA/HORIZONTÁLA)\n\n**Cíl:** Zkontrolovat logickou posloupnost a provázanost učiva v rámci ŠVP.\n\n- **Vertikální Kontrola:** Ověřit posloupnost OVU a učiva uvnitř jednoho předmětu/oblasti (postup od jednodušších ke složitějším konceptům napříč ročníky).\n- **Horizontální Kontrola:** Zkontrolovat logické provázání napříč vzdělávacími oblastmi a předměty (např. fyzika ↔ matematika).\n- **PT Integrace:** Audit reálné integrace Průřezových témat (PT) do konkrétních částí obsahu, metod a projektů.\n\n## FÁZE 5: ANALÝZA ŠKOLNÍ PROFILACE A ROZŠÍŘENÍ RVP\n\n**Cíl:** Validovat, že profilace školy je **v souladu** s RVP a nejedná se o **rozpor**.\n\n- **Nekonfliktnost:** Porovnat definovaný Profil absolventa školy s Klíčovými kompetencemi RVP. Profil ŠVP musí RVP rozvíjet, nikoli mu odporovat.\n- **Modularita:** Zkontrolovat, zda volitelné předměty a rozšiřující moduly logicky navazují na vzdělávací oblasti RVP.\n- **Implementace specializace:** Popisně uvést, jak je školní profilace (např. STEM zaměření, projektová výuka) integrována do OVU a kompetencí definovaných RVP.\n\n## FÁZE 6: GENERÁTOR ZÁVĚREČNÉ ZPRÁVY A KVANTIFIKACE\n\n**Cíl:** Syntetizovat výsledky, kvantifikovat soulad a generovat závazné návrhy na korekce.\n\n### 6.1 Kvantifikace Souladu\n\nVypočítat Index shody (IS) na základě bodového hodnocení (Fáze 3):\n\n### 6.2 Interpretace Indexu Shody (IS)\n\nKlasifikace souladu pro standardizované vyhodnocení:\n\n| Interval IS | Klasifikace souladu | Popis |\n| --- | --- | --- |\n| 95-100 % | Výborný soulad | ŠVP plně odpovídá RVP, pouze stylistické nebo formální rozdíly. |\n| --- | --- | --- |\n| 85-94 % | Dobrá shoda | ŠVP pokrývá všechny klíčové výstupy, menší korekce nutné. |\n| --- | --- | --- |\n| 70-84 % | Částečná shoda | Významné nedostatky v některých oblastech, nutná revize obsahu. |\n| --- | --- | --- |\n| < 70 % | Kritická neshoda | ŠVP neplní rámcové požadavky, ohrožuje legislativní soulad. |\n| --- | --- | --- |\n\n### 6.3 Doplňkové Indexy\n\nVypočítat následující doplňkové indexy pro detailní kvalitativní analýzu:\n\n- **Index kompetenčního souladu (IKS):** Poměr pokrytí klíčových kompetencí RVP v ŠVP.\n- **Index průřezové integrace (IPI):** Míra reálné integrace průřezových témat do výuky.\n- **Index hloubky pokrytí (IHP):** Procento výstupů, které jsou v ŠVP rozvedeny na konkrétní výukové cíle (měřitelné, aktivní formulace).\n- **Index profilové rozšiřitelnosti (IPR):** Kolik rozšiřujících nebo profilových výstupů přesahuje rámec RVP, aniž by narušily jeho strukturu.\n\n### 6.4 Vizuální výstupy\n\nZajistit generování následujících vizualizací pro Závěrečnou zprávu:\n\n- Graf pokrytí po vzdělávacích oblastech (Sloupcový graf IS pro VO).\n- Pavoukový diagram Klíčových kompetencí (RVP vs. ŠVP).\n- Mapa defektů (Vizualizace ❌ a ⚠️ výstupů).\n\n### 6.5 Struktura Závěrečné Zprávy\n\nZpráva musí být strukturována dle standardizovaného formátu:\n\n| Oddíl | Obsah |\n| --- | --- |\n| A. Identifikace | Název školy, IZO, typ školy, datum revize, zpracovatel, verze ŠVP a RVP. |\n| --- | --- |\n| B. Shrnutí výsledků | Celkový Index Shody (IS), hlavní závěry a doporučení. |\n| --- | --- |\n| C. Kvantitativní analýza | Přehled IS v % dle kategorií OVU / VO / kompetencí. |\n| --- | --- |\n| D. Kvalitativní analýza | Slovní zhodnocení kvality souladu (formulace, obtížnost, integrace PT). |\n| --- | --- |\n| E. Rizikové oblasti | Přehled nalezených defektů (chybějící OVU, přetížení, formální shoda). |\n| --- | --- |\n| F. Návrhy opatření (Korekční plán) | Přesné návrhy změn - **Co, Kde, Kdo** má upravit, včetně termínu. |\n| --- | --- |\n| G. Přílohy | Master Matice (Fáze 2-3), revizní tabulka, výstupní grafy a metriky. |\n| --- | --- |\n\n\n\n\n.\n"}],sourceFile:"./books/examples/lsvp-asistent.book"}];
|
|
5718
|
+
var PipelineCollection = [{title:"Prepare Knowledge from Markdown",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.book",formfactorName:"GENERIC",parameters:[{name:"knowledgeContent",description:"Markdown document content",isInput:true,isOutput:false},{name:"knowledgePieces",description:"The knowledge JSON object",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"knowledge",title:"Knowledge",content:"You are experienced data researcher, extract the important knowledge from the document.\n\n# Rules\n\n- Make pieces of information concise, clear, and easy to understand\n- One piece of information should be approximately 1 paragraph\n- Divide the paragraphs by markdown horizontal lines ---\n- Omit irrelevant information\n- Group redundant information\n- Write just extracted information, nothing else\n\n# The document\n\nTake information from this document:\n\n> {knowledgeContent}",resultingParameterName:"knowledgePieces",dependentParameterNames:["knowledgeContent"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Knowledge from Markdown\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.book`\n- INPUT PARAMETER `{knowledgeContent}` Markdown document content\n- OUTPUT PARAMETER `{knowledgePieces}` The knowledge JSON object\n\n## Knowledge\n\n<!-- TODO: [🍆] -FORMAT JSON -->\n\n```markdown\nYou are experienced data researcher, extract the important knowledge from the document.\n\n# Rules\n\n- Make pieces of information concise, clear, and easy to understand\n- One piece of information should be approximately 1 paragraph\n- Divide the paragraphs by markdown horizontal lines ---\n- Omit irrelevant information\n- Group redundant information\n- Write just extracted information, nothing else\n\n# The document\n\nTake information from this document:\n\n> {knowledgeContent}\n```\n\n`-> {knowledgePieces}`\n"}],sourceFile:"./books/prepare-knowledge-from-markdown.book"},{title:"Prepare Keywords",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-keywords.book",formfactorName:"GENERIC",parameters:[{name:"knowledgePieceContent",description:"The content",isInput:true,isOutput:false},{name:"keywords",description:"Keywords separated by comma",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"knowledge",title:"Knowledge",content:"You are experienced data researcher, detect the important keywords in the document.\n\n# Rules\n\n- Write just keywords separated by comma\n\n# The document\n\nTake information from this document:\n\n> {knowledgePieceContent}",resultingParameterName:"keywords",dependentParameterNames:["knowledgePieceContent"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Keywords\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-knowledge-keywords.book`\n- INPUT PARAMETER `{knowledgePieceContent}` The content\n- OUTPUT PARAMETER `{keywords}` Keywords separated by comma\n\n## Knowledge\n\n<!-- TODO: [🍆] -FORMAT JSON -->\n\n```markdown\nYou are experienced data researcher, detect the important keywords in the document.\n\n# Rules\n\n- Write just keywords separated by comma\n\n# The document\n\nTake information from this document:\n\n> {knowledgePieceContent}\n```\n\n`-> {keywords}`\n"}],sourceFile:"./books/prepare-knowledge-keywords.book"},{title:"Prepare Knowledge-piece Title",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-title.book",formfactorName:"GENERIC",parameters:[{name:"knowledgePieceContent",description:"The content",isInput:true,isOutput:false},{name:"title",description:"The title of the document",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"knowledge",title:"Knowledge",content:"You are experienced content creator, write best title for the document.\n\n# Rules\n\n- Write just title, nothing else\n- Write maximum 5 words for the title\n\n# The document\n\n> {knowledgePieceContent}",resultingParameterName:"title",expectations:{words:{min:1,max:8}},dependentParameterNames:["knowledgePieceContent"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Knowledge-piece Title\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-knowledge-title.book`\n- INPUT PARAMETER `{knowledgePieceContent}` The content\n- OUTPUT PARAMETER `{title}` The title of the document\n\n## Knowledge\n\n- EXPECT MIN 1 WORD\n- EXPECT MAX 8 WORDS\n\n```markdown\nYou are experienced content creator, write best title for the document.\n\n# Rules\n\n- Write just title, nothing else\n- Write maximum 5 words for the title\n\n# The document\n\n> {knowledgePieceContent}\n```\n\n`-> {title}`\n"}],sourceFile:"./books/prepare-knowledge-title.book"},{title:"Prepare Persona",pipelineUrl:"https://promptbook.studio/promptbook/prepare-persona.book",formfactorName:"GENERIC",parameters:[{name:"availableModels",description:"List of available model names together with their descriptions as JSON",isInput:true,isOutput:false},{name:"personaDescription",description:"Description of the persona",isInput:true,isOutput:false},{name:"modelsRequirements",description:"Specific requirements for the model",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"make-model-requirements",title:"Make modelRequirements",content:"You are an experienced AI engineer, you need to find the best models for virtual assistants:\n\n## Example\n\n```json\n[\n {\n \"modelName\": \"gpt-4o\",\n \"systemMessage\": \"You are experienced AI engineer and helpful assistant.\",\n \"temperature\": 0.7\n },\n {\n \"modelName\": \"claude-3-5-sonnet\",\n \"systemMessage\": \"You are a friendly and knowledgeable chatbot.\",\n \"temperature\": 0.5\n }\n]\n```\n\n## Instructions\n\n- Your output format is JSON array\n- Sort best-fitting models first\n- Omit any models that are not suitable\n- Write just the JSON, no other text should be present\n- Array contain items with following keys:\n - `modelName`: The name of the model to use\n - `systemMessage`: The system message to provide context to the model\n - `temperature`: The sampling temperature to use\n\n### Key `modelName`\n\nHere are the available models:\n\n```json\n{availableModels}\n```\n\n### Key `systemMessage`\n\nThe system message is used to communicate instructions or provide context to the model at the beginning of a conversation. It is displayed in a different format compared to user messages, helping the model understand its role in the conversation. The system message typically guides the model's behavior, sets the tone, or specifies desired output from the model. By utilizing the system message effectively, users can steer the model towards generating more accurate and relevant responses.\n\nFor example:\n\n> You are an experienced AI engineer and helpful assistant.\n\n> You are a friendly and knowledgeable chatbot.\n\n### Key `temperature`\n\nThe sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit.\n\nYou can pick a value between 0 and 2. For example:\n\n- `0.1`: Low temperature, extremely conservative and deterministic\n- `0.5`: Medium temperature, balanced between conservative and creative\n- `1.0`: High temperature, creative and bit random\n- `1.5`: Very high temperature, extremely creative and often chaotic and unpredictable\n- `2.0`: Maximum temperature, completely random and unpredictable, for some extreme creative use cases\n\n# The assistant\n\nTake this description of the persona:\n\n> {personaDescription}",resultingParameterName:"modelsRequirements",format:"JSON",dependentParameterNames:["availableModels","personaDescription"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Persona\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-persona.book`\n- INPUT PARAMETER `{availableModels}` List of available model names together with their descriptions as JSON\n- INPUT PARAMETER `{personaDescription}` Description of the persona\n- OUTPUT PARAMETER `{modelsRequirements}` Specific requirements for the model\n\n## Make modelRequirements\n\n- FORMAT JSON\n\n```markdown\nYou are an experienced AI engineer, you need to find the best models for virtual assistants:\n\n## Example\n\n\\`\\`\\`json\n[\n {\n \"modelName\": \"gpt-4o\",\n \"systemMessage\": \"You are experienced AI engineer and helpful assistant.\",\n \"temperature\": 0.7\n },\n {\n \"modelName\": \"claude-3-5-sonnet\",\n \"systemMessage\": \"You are a friendly and knowledgeable chatbot.\",\n \"temperature\": 0.5\n }\n]\n\\`\\`\\`\n\n## Instructions\n\n- Your output format is JSON array\n- Sort best-fitting models first\n- Omit any models that are not suitable\n- Write just the JSON, no other text should be present\n- Array contain items with following keys:\n - `modelName`: The name of the model to use\n - `systemMessage`: The system message to provide context to the model\n - `temperature`: The sampling temperature to use\n\n### Key `modelName`\n\nHere are the available models:\n\n\\`\\`\\`json\n{availableModels}\n\\`\\`\\`\n\n### Key `systemMessage`\n\nThe system message is used to communicate instructions or provide context to the model at the beginning of a conversation. It is displayed in a different format compared to user messages, helping the model understand its role in the conversation. The system message typically guides the model's behavior, sets the tone, or specifies desired output from the model. By utilizing the system message effectively, users can steer the model towards generating more accurate and relevant responses.\n\nFor example:\n\n> You are an experienced AI engineer and helpful assistant.\n\n> You are a friendly and knowledgeable chatbot.\n\n### Key `temperature`\n\nThe sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit.\n\nYou can pick a value between 0 and 2. For example:\n\n- `0.1`: Low temperature, extremely conservative and deterministic\n- `0.5`: Medium temperature, balanced between conservative and creative\n- `1.0`: High temperature, creative and bit random\n- `1.5`: Very high temperature, extremely creative and often chaotic and unpredictable\n- `2.0`: Maximum temperature, completely random and unpredictable, for some extreme creative use cases\n\n# The assistant\n\nTake this description of the persona:\n\n> {personaDescription}\n```\n\n`-> {modelsRequirements}`\n"}],sourceFile:"./books/prepare-persona.book"},{title:"Prepare Title",pipelineUrl:"https://promptbook.studio/promptbook/prepare-title.book",formfactorName:"GENERIC",parameters:[{name:"book",description:"The book to prepare the title for",isInput:true,isOutput:false},{name:"title",description:"Best title for the book",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"make-title",title:"Make title",content:"Make best title for given text which describes the workflow:\n\n## Rules\n\n- Write just title, nothing else\n- Title should be concise and clear - Write maximum ideally 2 words, maximum 5 words\n- Title starts with emoticon\n- Title should not mention the input and output of the workflow but the main purpose of the workflow\n _For example, not \"✍ Convert Knowledge-piece to title\" but \"✍ Title\"_\n\n## The workflow\n\n> {book}",resultingParameterName:"title",expectations:{words:{min:1,max:8},lines:{min:1,max:1}},dependentParameterNames:["book"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Title\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-title.book`\n- INPUT PARAMETER `{book}` The book to prepare the title for\n- OUTPUT PARAMETER `{title}` Best title for the book\n\n## Make title\n\n- EXPECT MIN 1 Word\n- EXPECT MAX 8 Words\n- EXPECT EXACTLY 1 Line\n\n```markdown\nMake best title for given text which describes the workflow:\n\n## Rules\n\n- Write just title, nothing else\n- Title should be concise and clear - Write maximum ideally 2 words, maximum 5 words\n- Title starts with emoticon\n- Title should not mention the input and output of the workflow but the main purpose of the workflow\n _For example, not \"✍ Convert Knowledge-piece to title\" but \"✍ Title\"_\n\n## The workflow\n\n> {book}\n```\n\n`-> {title}`\n"}],sourceFile:"./books/prepare-title.book"},{title:"📊 Curriculum Audit",pipelineUrl:"https://promptbook.studio/promptbook//examples/lsvp-asistent.book",formfactorName:"GENERIC",parameters:[{name:"result",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"prompt",title:"Prompt",content:"Asistent pro LŠVP\n\nPERSONA Jsi asistent pro RVP Lyceum v rámci Národního pedagogického institutu České Republiky\nMETA IMAGE https://edulk.cz/getFile/id:475818/type:large/02%20zna%C4%8Dka%20npi.jpg\nRULE Pokud jsi nejsi jistý, napiš nevím\nKNOWLEDGE ./241129_Lyceum_final.pdf\nCONTEXT Obecně dokážeš řešit libovolné ŠVP, aktuálně řešíš {Školní vzdělávací program LYCEUM}\nRULE Z {Porovnání RVP a ŠVP - postup} je nejdůležitější fáze 3\nKNOWLEDGE {Školní vzdělávací program LYCEUM} ./ŠVP Lyceum - Finance v digitální době.pdf\nKNOWLEDGE @Slovník\n\n**Interní slovník - RVP/ŠVP**\n\n**RVP**\n\nRámcový vzdělávací program pro obor vzdělání Lyceum je dokument na národní úrovni, který formuluje požadavky na školní vzdělávací programy ve formě především očekávaných výsledků učení, kterých mají žáci absolvováním tohoto programu na dané škole dosáhnout.\n\n**ŠVP**\n\nŠkolní vzdělávací program pro obor vzdělání Lyceum je dokument každé jednotlivé školy, který popisuje v jakých vyučovacích předmětech/ vzdělávacích modulech a v jakých ročnících budou požadované očekávané výsledky učení naplněny. Zároveň formuluje další očekávané výsledky učení, které naplňují disponibilní část vyučovacího času určeného RVP pro tento obor vzdělání.\n\n**Očekávaný výsledek učení (OVU)**\n\nVyjadřuje jednotlivý požadavek na to, co mají žáci umět na konci vzdělávacího programu, tzn. jejich požadované kompetence. Je vyjádřen formulací, která je uvozena činnostním slovesem a dále obsahuje předmět této činnosti. Formulace je konkretizována resp. doplněna zpravidla formou odrážek vymezením dílčích znalostí, dovedností, postojů, jejichž splnění je předpokladem dosažení OVU jako celku.\n\n_Příklad:_\n\n<div class=\"joplin-table-wrapper\"><table><tbody><tr><th><p><strong>Žák/žákyně řídí realizaci jednoduchého projektu</strong></p></th></tr><tr><td><ul><li>naplánuje aktivity projektu</li></ul></td></tr><tr><td><ul><li>navrhne rozpočet projektu vzhledem k navrženým aktivitám</li></ul></td></tr><tr><td><ul><li>stanoví základní ukazatele a sleduje jejich naplňování</li></ul></td></tr><tr><td><ul><li>vede projektový tým</li></ul></td></tr><tr><td><ul><li>uvede, jak by řešil krizové situace v projektu</li></ul></td></tr><tr><td><ul><li>vyhodnotí úspěšnost projektu</li></ul></td></tr></tbody></table></div>\n\n**Vzdělávací oblasti**\n\nOčekávané výsledky učení jsou v **_RVP členěny do 4 vzdělávacích oblastí_**, které tvoří společný všeobecně vzdělávací základ:\n\n- Osobnostní rozvoj, vzdělávání ke zdraví, bezpečí a produktivnímu pracovnímu životu (kariéře)\n- Komunikační a jazykové vzdělávání\n- Aplikované vzdělávání STEM (Science, Technology, Engeneering, Math), tj. přírodní vědy, informatika, technika, matematika\n- Prakticky orientované vzdělávání společenskovědní a humanitní\n\nKaždá vzdělávací oblast se dále člení na okruhy, v jejichž rámci jsou OVU samostatně číslované.\n\n<div class=\"joplin-table-wrapper\"><table><tbody><tr><th rowspan=\"21\"><ul><li>Prakticky orientované vzdělávání společenskovědní a humanitní</li></ul></th><th rowspan=\"21\"><p><strong>Člověk, ekonomie a podnikání</strong></p></th><th rowspan=\"7\"><p><strong>1</strong></p></th><th><p><strong>zpracuje podklady související s podnikáním</strong></p></th></tr><tr><td><p>připraví podnikatelský záměr</p></td></tr><tr><td><p>sestaví zakladatelský rozpočet</p></td></tr><tr><td><p>zkalkuluje cenu zboží nebo služby</p></td></tr><tr><td><p>vysvětlí na příkladu základní povinnosti podnikatele vůči státu a zaměstnancům</p></td></tr><tr><td><p>vede daňovou evidenci</p></td></tr><tr><td><p>vysvětlí na příkladech etiku v podnikání</p></td></tr><tr><td rowspan=\"7\"><p><strong>2</strong></p></td><td><p><strong>řídí realizaci jednoduchého projektu</strong></p></td></tr><tr><td><p>naplánuje aktivity projektu</p></td></tr><tr><td><p>navrhne rozpočet projektu vzhledem k navrženým aktivitám</p></td></tr><tr><td><p>stanoví základní ukazatele a sleduje jejich naplňování</p></td></tr><tr><td><p>vede projektový tým</p></td></tr><tr><td><p>uvede, jak by řešil krizové situace v projektu</p></td></tr><tr><td><p>vyhodnotí úspěšnost projektu</p></td></tr><tr><td rowspan=\"7\"><p><strong>3</strong></p></td><td><p><strong>aplikuje ekonomické teorie v osobním a profesním životě</strong></p></td></tr><tr><td><p>vysvětlí základní ekonomické otázky</p></td></tr><tr><td><p>vysvětí stanovení rovnovážné ceny na dokonalém i nedokonalém trhu</p></td></tr><tr><td><p>charakterizuje výrobní faktory a vysvětlí hranici produkčních možností a náklady obětované příležitosti</p></td></tr><tr><td><p>uvede nejdůležitější makroekonomické pojmy a vliv jejich výše na kvalitu života a podnikání v daném státě</p></td></tr><tr><td><p>vysvětlí podstatu inflace a její důsledky na finanční situaci obyvatel a na příkladu ukáže jak se bránit jejím nepříznivým důsledkům</p></td></tr><tr><td><p>uvede hlavní výhody a nevýhody mezinárodního obchodu a vliv ochranářských opatření na ekonomickou situaci dané země</p></td></tr><tr><td></td><td></td><td><p><strong>4</strong></p></td><td><p>Atd.</p></td></tr></tbody></table></div>\n\n**Vyučovací předmět / vzdělávací modul**\n\nOčekávané výsledky učení jsou v **ŠVP** členěny do vyučovacích předmětů nebo vzdělávacích modulů, které jsou dále zařazeny do jednoho nebo více ročníků 4letého studia. Vyučovací předmět / vzdělávací modul tvoří vyučovací jednotku, kde jsou očekávané výsledky učení dále rozpracovány pro potřeby výuky podle následující šablony\n\n| **A. VSTUPNÍ ČÁST** |\n| --- |\n| **1\\. Název** |\n| **2\\. Kód** (kódy by měly být navázány na obory vzdělání a výsledky učení) |\n| **2a) Kategorie vzdělání** - v případě, že nebude součástí kódu |\n| **3\\. Typ vyučovací jednotky** (modul, předmět, stáž apod.) |\n| **4\\. Délka** (počet hodin - dělitelný čtyřmi (optimální modul 16, 32 hodin = týden výuky) |\n| **5\\. Platnost** (datum, od kterého platí) |\n| **6\\. Vstupní předpoklady** (vymezení požadované úrovně vstupních vědomostí a dovedností, které jsou předpokladem úspěšného studia) |\n| |\n| **B. JÁDRO VYUČOVACÍ JEDNOTKY** |\n| **1\\. Charakteristika** (stručná anotace popisující obecné cíle a pojetí) |\n| **2\\. Očekávané výsledky učení a jejich indikátory (převzaté z RVP nebo dále konkretizované)** |\n| **3\\. Podpora rozvoje klíčových kompetencí a základních gramotností** (které klíčové kompetence jsou v rozvíjeny) |\n| **4\\. Obsah vzdělávání** (rozpis učiva) |\n| **5\\. Vzdělávací strategie** (strategie výuky, resp. učební činnosti žáků, které jsou doporučené pro dosažení výsledků) |\n| |\n| **C. VÝSTUPNÍ ČÁST** |\n| **1\\. Způsob ověřování dosažených výsledků** (ve vazbě na jednotlivé výsledky učení) |\n| **2\\. Kritéria hodnocení** (co znamená splnění výsledků učení, kdy je splněna celá vyučovací jednotka, kritéria pro známky, příp. procentuální, slovní hodnocení) |\n| **3\\. Doporučená studijní literatura, odkazy na ilustrační zdroje** |\n| **4\\. Poznámky** |\n\n**Soulad OVU RVP a ŠVP**\n\nTento soulad je předmětem zjišťování. Soulad nastává, jestliže jsou očekávané výsledky učení z jednotlivých vzdělávacích oblastí RVP **obsaženy** ve vyučovacích předmětech/ vzdělávacích modulech ŠVP jednotlivých škol, tzn. že v ŠVP se objevuje jejich formulace buď v doslovném nebo podobném znění v jednom nebo více vyučovacích předmětech/ vzdělávacích modulech.\n\n_Příklad souladu:_\n\nRVP ŠVP - komunikace a marketing (SŠ obchodní Č.\n\n| **2** | **řídí realizaci jednoduchého projektu** |\n| --- | --- |\n| naplánuje aktivity projektu |\n| navrhne rozpočet projektu vzhledem k navrženým aktivitám |\n| stanoví základní ukazatele a sleduje jejich naplňování |\n| vede projektový tým |\n| uvede, jak by řešil krizové situace v projektu |\n| vyhodnotí úspěšnost projektu |\n\nKNOWLEDGE {Porovnání RVP a ŠVP - postup}\n\n\n# AUDITNÍ PROTOKOL ŠVP-RVP\n\n# (POPIS KONTROLNÍHO ALGORITMU)\n\nMetodika je určena pro **Kvantifikaci Shody** školního vzdělávacího programu (ŠVP) s Rámcovým vzdělávacím programem (RVP).\n\n## FÁZE 1: VALIDACE DOKUMENTACE\n\n**Cíl:** Ověřit platnost, aktuálnost a strukturu zdrojových dokumentů.\n\n- **RVP Verifikace:** Otevřít aktuální verzi RVP (např. RVP ZV/G/SOŠ).\n- **Typová shoda:** Ověřit, že RVP se vztahuje k danému typu školy.\n- **ŠVP Dimenze:** Identifikovat a izolovat relevantní části ŠVP: Profil absolventa, Klíčové kompetence (KK), Vzdělávací oblasti (VO), případně Učební plán (UP).\n- **Verzování:** Potvrdit, že obě verze (RVP a ŠVP) jsou nejnovější a platné (včetně dodatků RVP).\n\n## FÁZE 2: DATABÁZOVÉ MAPOVÁNÍ VÝSTUPŮ (MASTER MATICE)\n\n**Cíl:** Vytvořit systémovou databázi pro křížové porovnání všech povinných komponent RVP se ŠVP.\n\n- **Dekompozice RVP:** Rozložit RVP na základní povinné komponenty: Klíčové kompetence, Vzdělávací oblasti a obory, Očekávané výstupy (OVU), Průřezová témata (PT).\n- **Přiřazovací mapa:** Vytvořit hlavní kontrolní matici (Master Matice) pro záznam vazeb.\n\n| Oblast RVP | Výstup RVP (OVU) | Odpovídající Část ŠVP (Předmět/Ročník) | Konkrétní Tématický Celek v ŠVP | Stav Shody (Protokol) |\n| --- | --- | --- | --- | --- |\n| ... | ... | ... | ... | ... |\n| --- | --- | --- | --- | --- |\n\n## FÁZE 3: ALGORITMICKÁ KONTROLA POKRYTÍ A HLOUBKY\n\n**Cíl:** Posoudit, zda každý povinný výstup RVP je adekvátně reflektován v obsahu ŠVP, a přidělit bodovou hodnotu pro kvantifikaci.\n\n- **Audit OVU:** Projít každý jednotlivý Očekávaný výstup (OVU) z RVP.\n- **Kódování stavu a bodování:** U každého OVU v matici označit stav pokrytí dle následujícího schématu:\n\n| Kód (Protokol) | Popis (Kvalitativní zjištění) | Bodová hodnota (Kvantifikace) |\n| --- | --- | --- |\n| ✅ | Plná shoda (Výstup pokryt v plném rozsahu, odpovídající úrovni RVP) | 1,0 |\n| --- | --- | --- |\n| ⚠️ | Částečná shoda (Formální pokrytí, omezený rozsah, chybná návaznost) | 0,5 |\n| --- | --- | --- |\n| ❌ | Absence (Výstup zcela chybí v obsahu ŠVP) | 0,0 |\n| --- | --- | --- |\n\n- **Defektologie ŠVP:** Identifikovat a zaznamenat deficity ŠVP: Chybějící výstupy (❌), Sémantické překryvy, Přetížení obsahu.\n- **Kvalitativní posun:** Ověřit, zda je formulace výstupů v ŠVP **aktivní, měřitelná a v souladu** s úrovní RVP.\n\n## FÁZE 4: STRUKTURÁLNÍ VERIFIKACE NÁVAZNOSTI (VERTIKÁLA/HORIZONTÁLA)\n\n**Cíl:** Zkontrolovat logickou posloupnost a provázanost učiva v rámci ŠVP.\n\n- **Vertikální Kontrola:** Ověřit posloupnost OVU a učiva uvnitř jednoho předmětu/oblasti (postup od jednodušších ke složitějším konceptům napříč ročníky).\n- **Horizontální Kontrola:** Zkontrolovat logické provázání napříč vzdělávacími oblastmi a předměty (např. fyzika ↔ matematika).\n- **PT Integrace:** Audit reálné integrace Průřezových témat (PT) do konkrétních částí obsahu, metod a projektů.\n\n## FÁZE 5: ANALÝZA ŠKOLNÍ PROFILACE A ROZŠÍŘENÍ RVP\n\n**Cíl:** Validovat, že profilace školy je **v souladu** s RVP a nejedná se o **rozpor**.\n\n- **Nekonfliktnost:** Porovnat definovaný Profil absolventa školy s Klíčovými kompetencemi RVP. Profil ŠVP musí RVP rozvíjet, nikoli mu odporovat.\n- **Modularita:** Zkontrolovat, zda volitelné předměty a rozšiřující moduly logicky navazují na vzdělávací oblasti RVP.\n- **Implementace specializace:** Popisně uvést, jak je školní profilace (např. STEM zaměření, projektová výuka) integrována do OVU a kompetencí definovaných RVP.\n\n## FÁZE 6: GENERÁTOR ZÁVĚREČNÉ ZPRÁVY A KVANTIFIKACE\n\n**Cíl:** Syntetizovat výsledky, kvantifikovat soulad a generovat závazné návrhy na korekce.\n\n### 6.1 Kvantifikace Souladu\n\nVypočítat Index shody (IS) na základě bodového hodnocení (Fáze 3):\n\n### 6.2 Interpretace Indexu Shody (IS)\n\nKlasifikace souladu pro standardizované vyhodnocení:\n\n| Interval IS | Klasifikace souladu | Popis |\n| --- | --- | --- |\n| 95-100 % | Výborný soulad | ŠVP plně odpovídá RVP, pouze stylistické nebo formální rozdíly. |\n| --- | --- | --- |\n| 85-94 % | Dobrá shoda | ŠVP pokrývá všechny klíčové výstupy, menší korekce nutné. |\n| --- | --- | --- |\n| 70-84 % | Částečná shoda | Významné nedostatky v některých oblastech, nutná revize obsahu. |\n| --- | --- | --- |\n| < 70 % | Kritická neshoda | ŠVP neplní rámcové požadavky, ohrožuje legislativní soulad. |\n| --- | --- | --- |\n\n### 6.3 Doplňkové Indexy\n\nVypočítat následující doplňkové indexy pro detailní kvalitativní analýzu:\n\n- **Index kompetenčního souladu (IKS):** Poměr pokrytí klíčových kompetencí RVP v ŠVP.\n- **Index průřezové integrace (IPI):** Míra reálné integrace průřezových témat do výuky.\n- **Index hloubky pokrytí (IHP):** Procento výstupů, které jsou v ŠVP rozvedeny na konkrétní výukové cíle (měřitelné, aktivní formulace).\n- **Index profilové rozšiřitelnosti (IPR):** Kolik rozšiřujících nebo profilových výstupů přesahuje rámec RVP, aniž by narušily jeho strukturu.\n\n### 6.4 Vizuální výstupy\n\nZajistit generování následujících vizualizací pro Závěrečnou zprávu:\n\n- Graf pokrytí po vzdělávacích oblastech (Sloupcový graf IS pro VO).\n- Pavoukový diagram Klíčových kompetencí (RVP vs. ŠVP).\n- Mapa defektů (Vizualizace ❌ a ⚠️ výstupů).\n\n### 6.5 Struktura Závěrečné Zprávy\n\nZpráva musí být strukturována dle standardizovaného formátu:\n\n| Oddíl | Obsah |\n| --- | --- |\n| A. Identifikace | Název školy, IZO, typ školy, datum revize, zpracovatel, verze ŠVP a RVP. |\n| --- | --- |\n| B. Shrnutí výsledků | Celkový Index Shody (IS), hlavní závěry a doporučení. |\n| --- | --- |\n| C. Kvantitativní analýza | Přehled IS v % dle kategorií OVU / VO / kompetencí. |\n| --- | --- |\n| D. Kvalitativní analýza | Slovní zhodnocení kvality souladu (formulace, obtížnost, integrace PT). |\n| --- | --- |\n| E. Rizikové oblasti | Přehled nalezených defektů (chybějící OVU, přetížení, formální shoda). |\n| --- | --- |\n| F. Návrhy opatření (Korekční plán) | Přesné návrhy změn - **Co, Kde, Kdo** má upravit, včetně termínu. |\n| --- | --- |\n| G. Přílohy | Master Matice (Fáze 2-3), revizní tabulka, výstupní grafy a metriky. |\n| --- | --- |\n\n\n\n\n.",resultingParameterName:"result",dependentParameterNames:[]}],personas:[],preparations:[{id:1,promptbookVersion:"0.103.0-32",usage:{price:{value:0},input:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}},output:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}}}}],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"Asistent pro LŠVP\n\nPERSONA Jsi asistent pro RVP Lyceum v rámci Národního pedagogického institutu České Republiky\nMETA IMAGE https://edulk.cz/getFile/id:475818/type:large/02%20zna%C4%8Dka%20npi.jpg\nRULE Pokud jsi nejsi jistý, napiš nevím\nKNOWLEDGE ./241129_Lyceum_final.pdf\nCONTEXT Obecně dokážeš řešit libovolné ŠVP, aktuálně řešíš {Školní vzdělávací program LYCEUM}\nRULE Z {Porovnání RVP a ŠVP - postup} je nejdůležitější fáze 3\nKNOWLEDGE {Školní vzdělávací program LYCEUM} ./ŠVP Lyceum - Finance v digitální době.pdf\nKNOWLEDGE @Slovník\n\n**Interní slovník - RVP/ŠVP**\n\n**RVP**\n\nRámcový vzdělávací program pro obor vzdělání Lyceum je dokument na národní úrovni, který formuluje požadavky na školní vzdělávací programy ve formě především očekávaných výsledků učení, kterých mají žáci absolvováním tohoto programu na dané škole dosáhnout.\n\n**ŠVP**\n\nŠkolní vzdělávací program pro obor vzdělání Lyceum je dokument každé jednotlivé školy, který popisuje v jakých vyučovacích předmětech/ vzdělávacích modulech a v jakých ročnících budou požadované očekávané výsledky učení naplněny. Zároveň formuluje další očekávané výsledky učení, které naplňují disponibilní část vyučovacího času určeného RVP pro tento obor vzdělání.\n\n**Očekávaný výsledek učení (OVU)**\n\nVyjadřuje jednotlivý požadavek na to, co mají žáci umět na konci vzdělávacího programu, tzn. jejich požadované kompetence. Je vyjádřen formulací, která je uvozena činnostním slovesem a dále obsahuje předmět této činnosti. Formulace je konkretizována resp. doplněna zpravidla formou odrážek vymezením dílčích znalostí, dovedností, postojů, jejichž splnění je předpokladem dosažení OVU jako celku.\n\n_Příklad:_\n\n<div class=\"joplin-table-wrapper\"><table><tbody><tr><th><p><strong>Žák/žákyně řídí realizaci jednoduchého projektu</strong></p></th></tr><tr><td><ul><li>naplánuje aktivity projektu</li></ul></td></tr><tr><td><ul><li>navrhne rozpočet projektu vzhledem k navrženým aktivitám</li></ul></td></tr><tr><td><ul><li>stanoví základní ukazatele a sleduje jejich naplňování</li></ul></td></tr><tr><td><ul><li>vede projektový tým</li></ul></td></tr><tr><td><ul><li>uvede, jak by řešil krizové situace v projektu</li></ul></td></tr><tr><td><ul><li>vyhodnotí úspěšnost projektu</li></ul></td></tr></tbody></table></div>\n\n**Vzdělávací oblasti**\n\nOčekávané výsledky učení jsou v **_RVP členěny do 4 vzdělávacích oblastí_**, které tvoří společný všeobecně vzdělávací základ:\n\n- Osobnostní rozvoj, vzdělávání ke zdraví, bezpečí a produktivnímu pracovnímu životu (kariéře)\n- Komunikační a jazykové vzdělávání\n- Aplikované vzdělávání STEM (Science, Technology, Engeneering, Math), tj. přírodní vědy, informatika, technika, matematika\n- Prakticky orientované vzdělávání společenskovědní a humanitní\n\nKaždá vzdělávací oblast se dále člení na okruhy, v jejichž rámci jsou OVU samostatně číslované.\n\n<div class=\"joplin-table-wrapper\"><table><tbody><tr><th rowspan=\"21\"><ul><li>Prakticky orientované vzdělávání společenskovědní a humanitní</li></ul></th><th rowspan=\"21\"><p><strong>Člověk, ekonomie a podnikání</strong></p></th><th rowspan=\"7\"><p><strong>1</strong></p></th><th><p><strong>zpracuje podklady související s podnikáním</strong></p></th></tr><tr><td><p>připraví podnikatelský záměr</p></td></tr><tr><td><p>sestaví zakladatelský rozpočet</p></td></tr><tr><td><p>zkalkuluje cenu zboží nebo služby</p></td></tr><tr><td><p>vysvětlí na příkladu základní povinnosti podnikatele vůči státu a zaměstnancům</p></td></tr><tr><td><p>vede daňovou evidenci</p></td></tr><tr><td><p>vysvětlí na příkladech etiku v podnikání</p></td></tr><tr><td rowspan=\"7\"><p><strong>2</strong></p></td><td><p><strong>řídí realizaci jednoduchého projektu</strong></p></td></tr><tr><td><p>naplánuje aktivity projektu</p></td></tr><tr><td><p>navrhne rozpočet projektu vzhledem k navrženým aktivitám</p></td></tr><tr><td><p>stanoví základní ukazatele a sleduje jejich naplňování</p></td></tr><tr><td><p>vede projektový tým</p></td></tr><tr><td><p>uvede, jak by řešil krizové situace v projektu</p></td></tr><tr><td><p>vyhodnotí úspěšnost projektu</p></td></tr><tr><td rowspan=\"7\"><p><strong>3</strong></p></td><td><p><strong>aplikuje ekonomické teorie v osobním a profesním životě</strong></p></td></tr><tr><td><p>vysvětlí základní ekonomické otázky</p></td></tr><tr><td><p>vysvětí stanovení rovnovážné ceny na dokonalém i nedokonalém trhu</p></td></tr><tr><td><p>charakterizuje výrobní faktory a vysvětlí hranici produkčních možností a náklady obětované příležitosti</p></td></tr><tr><td><p>uvede nejdůležitější makroekonomické pojmy a vliv jejich výše na kvalitu života a podnikání v daném státě</p></td></tr><tr><td><p>vysvětlí podstatu inflace a její důsledky na finanční situaci obyvatel a na příkladu ukáže jak se bránit jejím nepříznivým důsledkům</p></td></tr><tr><td><p>uvede hlavní výhody a nevýhody mezinárodního obchodu a vliv ochranářských opatření na ekonomickou situaci dané země</p></td></tr><tr><td></td><td></td><td><p><strong>4</strong></p></td><td><p>Atd.</p></td></tr></tbody></table></div>\n\n**Vyučovací předmět / vzdělávací modul**\n\nOčekávané výsledky učení jsou v **ŠVP** členěny do vyučovacích předmětů nebo vzdělávacích modulů, které jsou dále zařazeny do jednoho nebo více ročníků 4letého studia. Vyučovací předmět / vzdělávací modul tvoří vyučovací jednotku, kde jsou očekávané výsledky učení dále rozpracovány pro potřeby výuky podle následující šablony\n\n| **A. VSTUPNÍ ČÁST** |\n| --- |\n| **1\\. Název** |\n| **2\\. Kód** (kódy by měly být navázány na obory vzdělání a výsledky učení) |\n| **2a) Kategorie vzdělání** - v případě, že nebude součástí kódu |\n| **3\\. Typ vyučovací jednotky** (modul, předmět, stáž apod.) |\n| **4\\. Délka** (počet hodin - dělitelný čtyřmi (optimální modul 16, 32 hodin = týden výuky) |\n| **5\\. Platnost** (datum, od kterého platí) |\n| **6\\. Vstupní předpoklady** (vymezení požadované úrovně vstupních vědomostí a dovedností, které jsou předpokladem úspěšného studia) |\n| |\n| **B. JÁDRO VYUČOVACÍ JEDNOTKY** |\n| **1\\. Charakteristika** (stručná anotace popisující obecné cíle a pojetí) |\n| **2\\. Očekávané výsledky učení a jejich indikátory (převzaté z RVP nebo dále konkretizované)** |\n| **3\\. Podpora rozvoje klíčových kompetencí a základních gramotností** (které klíčové kompetence jsou v rozvíjeny) |\n| **4\\. Obsah vzdělávání** (rozpis učiva) |\n| **5\\. Vzdělávací strategie** (strategie výuky, resp. učební činnosti žáků, které jsou doporučené pro dosažení výsledků) |\n| |\n| **C. VÝSTUPNÍ ČÁST** |\n| **1\\. Způsob ověřování dosažených výsledků** (ve vazbě na jednotlivé výsledky učení) |\n| **2\\. Kritéria hodnocení** (co znamená splnění výsledků učení, kdy je splněna celá vyučovací jednotka, kritéria pro známky, příp. procentuální, slovní hodnocení) |\n| **3\\. Doporučená studijní literatura, odkazy na ilustrační zdroje** |\n| **4\\. Poznámky** |\n\n**Soulad OVU RVP a ŠVP**\n\nTento soulad je předmětem zjišťování. Soulad nastává, jestliže jsou očekávané výsledky učení z jednotlivých vzdělávacích oblastí RVP **obsaženy** ve vyučovacích předmětech/ vzdělávacích modulech ŠVP jednotlivých škol, tzn. že v ŠVP se objevuje jejich formulace buď v doslovném nebo podobném znění v jednom nebo více vyučovacích předmětech/ vzdělávacích modulech.\n\n_Příklad souladu:_\n\nRVP ŠVP - komunikace a marketing (SŠ obchodní Č.\n\n| **2** | **řídí realizaci jednoduchého projektu** |\n| --- | --- |\n| naplánuje aktivity projektu |\n| navrhne rozpočet projektu vzhledem k navrženým aktivitám |\n| stanoví základní ukazatele a sleduje jejich naplňování |\n| vede projektový tým |\n| uvede, jak by řešil krizové situace v projektu |\n| vyhodnotí úspěšnost projektu |\n\nKNOWLEDGE {Porovnání RVP a ŠVP - postup}\n\n\n# AUDITNÍ PROTOKOL ŠVP-RVP\n\n# (POPIS KONTROLNÍHO ALGORITMU)\n\nMetodika je určena pro **Kvantifikaci Shody** školního vzdělávacího programu (ŠVP) s Rámcovým vzdělávacím programem (RVP).\n\n## FÁZE 1: VALIDACE DOKUMENTACE\n\n**Cíl:** Ověřit platnost, aktuálnost a strukturu zdrojových dokumentů.\n\n- **RVP Verifikace:** Otevřít aktuální verzi RVP (např. RVP ZV/G/SOŠ).\n- **Typová shoda:** Ověřit, že RVP se vztahuje k danému typu školy.\n- **ŠVP Dimenze:** Identifikovat a izolovat relevantní části ŠVP: Profil absolventa, Klíčové kompetence (KK), Vzdělávací oblasti (VO), případně Učební plán (UP).\n- **Verzování:** Potvrdit, že obě verze (RVP a ŠVP) jsou nejnovější a platné (včetně dodatků RVP).\n\n## FÁZE 2: DATABÁZOVÉ MAPOVÁNÍ VÝSTUPŮ (MASTER MATICE)\n\n**Cíl:** Vytvořit systémovou databázi pro křížové porovnání všech povinných komponent RVP se ŠVP.\n\n- **Dekompozice RVP:** Rozložit RVP na základní povinné komponenty: Klíčové kompetence, Vzdělávací oblasti a obory, Očekávané výstupy (OVU), Průřezová témata (PT).\n- **Přiřazovací mapa:** Vytvořit hlavní kontrolní matici (Master Matice) pro záznam vazeb.\n\n| Oblast RVP | Výstup RVP (OVU) | Odpovídající Část ŠVP (Předmět/Ročník) | Konkrétní Tématický Celek v ŠVP | Stav Shody (Protokol) |\n| --- | --- | --- | --- | --- |\n| ... | ... | ... | ... | ... |\n| --- | --- | --- | --- | --- |\n\n## FÁZE 3: ALGORITMICKÁ KONTROLA POKRYTÍ A HLOUBKY\n\n**Cíl:** Posoudit, zda každý povinný výstup RVP je adekvátně reflektován v obsahu ŠVP, a přidělit bodovou hodnotu pro kvantifikaci.\n\n- **Audit OVU:** Projít každý jednotlivý Očekávaný výstup (OVU) z RVP.\n- **Kódování stavu a bodování:** U každého OVU v matici označit stav pokrytí dle následujícího schématu:\n\n| Kód (Protokol) | Popis (Kvalitativní zjištění) | Bodová hodnota (Kvantifikace) |\n| --- | --- | --- |\n| ✅ | Plná shoda (Výstup pokryt v plném rozsahu, odpovídající úrovni RVP) | 1,0 |\n| --- | --- | --- |\n| ⚠️ | Částečná shoda (Formální pokrytí, omezený rozsah, chybná návaznost) | 0,5 |\n| --- | --- | --- |\n| ❌ | Absence (Výstup zcela chybí v obsahu ŠVP) | 0,0 |\n| --- | --- | --- |\n\n- **Defektologie ŠVP:** Identifikovat a zaznamenat deficity ŠVP: Chybějící výstupy (❌), Sémantické překryvy, Přetížení obsahu.\n- **Kvalitativní posun:** Ověřit, zda je formulace výstupů v ŠVP **aktivní, měřitelná a v souladu** s úrovní RVP.\n\n## FÁZE 4: STRUKTURÁLNÍ VERIFIKACE NÁVAZNOSTI (VERTIKÁLA/HORIZONTÁLA)\n\n**Cíl:** Zkontrolovat logickou posloupnost a provázanost učiva v rámci ŠVP.\n\n- **Vertikální Kontrola:** Ověřit posloupnost OVU a učiva uvnitř jednoho předmětu/oblasti (postup od jednodušších ke složitějším konceptům napříč ročníky).\n- **Horizontální Kontrola:** Zkontrolovat logické provázání napříč vzdělávacími oblastmi a předměty (např. fyzika ↔ matematika).\n- **PT Integrace:** Audit reálné integrace Průřezových témat (PT) do konkrétních částí obsahu, metod a projektů.\n\n## FÁZE 5: ANALÝZA ŠKOLNÍ PROFILACE A ROZŠÍŘENÍ RVP\n\n**Cíl:** Validovat, že profilace školy je **v souladu** s RVP a nejedná se o **rozpor**.\n\n- **Nekonfliktnost:** Porovnat definovaný Profil absolventa školy s Klíčovými kompetencemi RVP. Profil ŠVP musí RVP rozvíjet, nikoli mu odporovat.\n- **Modularita:** Zkontrolovat, zda volitelné předměty a rozšiřující moduly logicky navazují na vzdělávací oblasti RVP.\n- **Implementace specializace:** Popisně uvést, jak je školní profilace (např. STEM zaměření, projektová výuka) integrována do OVU a kompetencí definovaných RVP.\n\n## FÁZE 6: GENERÁTOR ZÁVĚREČNÉ ZPRÁVY A KVANTIFIKACE\n\n**Cíl:** Syntetizovat výsledky, kvantifikovat soulad a generovat závazné návrhy na korekce.\n\n### 6.1 Kvantifikace Souladu\n\nVypočítat Index shody (IS) na základě bodového hodnocení (Fáze 3):\n\n### 6.2 Interpretace Indexu Shody (IS)\n\nKlasifikace souladu pro standardizované vyhodnocení:\n\n| Interval IS | Klasifikace souladu | Popis |\n| --- | --- | --- |\n| 95-100 % | Výborný soulad | ŠVP plně odpovídá RVP, pouze stylistické nebo formální rozdíly. |\n| --- | --- | --- |\n| 85-94 % | Dobrá shoda | ŠVP pokrývá všechny klíčové výstupy, menší korekce nutné. |\n| --- | --- | --- |\n| 70-84 % | Částečná shoda | Významné nedostatky v některých oblastech, nutná revize obsahu. |\n| --- | --- | --- |\n| < 70 % | Kritická neshoda | ŠVP neplní rámcové požadavky, ohrožuje legislativní soulad. |\n| --- | --- | --- |\n\n### 6.3 Doplňkové Indexy\n\nVypočítat následující doplňkové indexy pro detailní kvalitativní analýzu:\n\n- **Index kompetenčního souladu (IKS):** Poměr pokrytí klíčových kompetencí RVP v ŠVP.\n- **Index průřezové integrace (IPI):** Míra reálné integrace průřezových témat do výuky.\n- **Index hloubky pokrytí (IHP):** Procento výstupů, které jsou v ŠVP rozvedeny na konkrétní výukové cíle (měřitelné, aktivní formulace).\n- **Index profilové rozšiřitelnosti (IPR):** Kolik rozšiřujících nebo profilových výstupů přesahuje rámec RVP, aniž by narušily jeho strukturu.\n\n### 6.4 Vizuální výstupy\n\nZajistit generování následujících vizualizací pro Závěrečnou zprávu:\n\n- Graf pokrytí po vzdělávacích oblastech (Sloupcový graf IS pro VO).\n- Pavoukový diagram Klíčových kompetencí (RVP vs. ŠVP).\n- Mapa defektů (Vizualizace ❌ a ⚠️ výstupů).\n\n### 6.5 Struktura Závěrečné Zprávy\n\nZpráva musí být strukturována dle standardizovaného formátu:\n\n| Oddíl | Obsah |\n| --- | --- |\n| A. Identifikace | Název školy, IZO, typ školy, datum revize, zpracovatel, verze ŠVP a RVP. |\n| --- | --- |\n| B. Shrnutí výsledků | Celkový Index Shody (IS), hlavní závěry a doporučení. |\n| --- | --- |\n| C. Kvantitativní analýza | Přehled IS v % dle kategorií OVU / VO / kompetencí. |\n| --- | --- |\n| D. Kvalitativní analýza | Slovní zhodnocení kvality souladu (formulace, obtížnost, integrace PT). |\n| --- | --- |\n| E. Rizikové oblasti | Přehled nalezených defektů (chybějící OVU, přetížení, formální shoda). |\n| --- | --- |\n| F. Návrhy opatření (Korekční plán) | Přesné návrhy změn - **Co, Kde, Kdo** má upravit, včetně termínu. |\n| --- | --- |\n| G. Přílohy | Master Matice (Fáze 2-3), revizní tabulka, výstupní grafy a metriky. |\n| --- | --- |\n\n\n\n\n.\n"}],sourceFile:"./books/examples/lsvp-asistent.book"}];
|
|
5719
5719
|
|
|
5720
5720
|
/**
|
|
5721
5721
|
* Function `validatePipelineString` will validate the if the string is a valid pipeline string
|
|
@@ -6438,6 +6438,7 @@ function createTask(options) {
|
|
|
6438
6438
|
let updatedAt = createdAt;
|
|
6439
6439
|
const errors = [];
|
|
6440
6440
|
const warnings = [];
|
|
6441
|
+
const llmCalls = [];
|
|
6441
6442
|
let currentValue = {};
|
|
6442
6443
|
let customTldr = null;
|
|
6443
6444
|
const partialResultSubject = new Subject();
|
|
@@ -6453,6 +6454,9 @@ function createTask(options) {
|
|
|
6453
6454
|
}, (tldrInfo) => {
|
|
6454
6455
|
customTldr = tldrInfo;
|
|
6455
6456
|
updatedAt = new Date();
|
|
6457
|
+
}, (llmCall) => {
|
|
6458
|
+
llmCalls.push(llmCall);
|
|
6459
|
+
updatedAt = new Date();
|
|
6456
6460
|
});
|
|
6457
6461
|
finalResultPromise
|
|
6458
6462
|
.catch((error) => {
|
|
@@ -6598,6 +6602,10 @@ function createTask(options) {
|
|
|
6598
6602
|
return warnings;
|
|
6599
6603
|
// <- Note: [1] --||--
|
|
6600
6604
|
},
|
|
6605
|
+
get llmCalls() {
|
|
6606
|
+
return llmCalls;
|
|
6607
|
+
// <- Note: [1] --||--
|
|
6608
|
+
},
|
|
6601
6609
|
get currentValue() {
|
|
6602
6610
|
return currentValue;
|
|
6603
6611
|
// <- Note: [1] --||--
|
|
@@ -8302,6 +8310,18 @@ function mapAvailableToExpectedParameters(options) {
|
|
|
8302
8310
|
function keepUnused(...valuesToKeep) {
|
|
8303
8311
|
}
|
|
8304
8312
|
|
|
8313
|
+
/**
|
|
8314
|
+
* Logs an LLM call with the given report.
|
|
8315
|
+
*
|
|
8316
|
+
* @private internal utility of `createPipelineExecutor`
|
|
8317
|
+
*/
|
|
8318
|
+
function logLlmCall(logLlmCall, report) {
|
|
8319
|
+
logLlmCall({
|
|
8320
|
+
modelName: 'model' /* <- TODO: How to get model name from the report */,
|
|
8321
|
+
report,
|
|
8322
|
+
});
|
|
8323
|
+
}
|
|
8324
|
+
|
|
8305
8325
|
/**
|
|
8306
8326
|
* Extracts all code blocks from markdown.
|
|
8307
8327
|
*
|
|
@@ -8505,7 +8525,7 @@ function validatePromptResult(options) {
|
|
|
8505
8525
|
*/
|
|
8506
8526
|
async function executeAttempts(options) {
|
|
8507
8527
|
const { jokerParameterNames, priority, maxAttempts, // <- Note: [💂]
|
|
8508
|
-
preparedContent, parameters, task, preparedPipeline, tools, $executionReport, pipelineIdentification, maxExecutionAttempts, onProgress, } = options;
|
|
8528
|
+
preparedContent, parameters, task, preparedPipeline, tools, $executionReport, pipelineIdentification, maxExecutionAttempts, onProgress, logLlmCall: logLlmCall$1, } = options;
|
|
8509
8529
|
const $ongoingTaskResult = {
|
|
8510
8530
|
$result: null,
|
|
8511
8531
|
$resultString: null,
|
|
@@ -8753,14 +8773,10 @@ async function executeAttempts(options) {
|
|
|
8753
8773
|
});
|
|
8754
8774
|
}
|
|
8755
8775
|
finally {
|
|
8756
|
-
if (!isJokerAttempt &&
|
|
8757
|
-
|
|
8758
|
-
|
|
8759
|
-
|
|
8760
|
-
// In that case we don’t want to make a report about it because it’s not a llm execution error
|
|
8761
|
-
) {
|
|
8762
|
-
// TODO: [🧠] Maybe put other taskTypes into report
|
|
8763
|
-
$executionReport.promptExecutions.push({
|
|
8776
|
+
if (!isJokerAttempt && task.taskType === 'PROMPT_TASK' && $ongoingTaskResult.$prompt) {
|
|
8777
|
+
// Note: [2] When some expected parameter is not defined, error will occur in templateParameters
|
|
8778
|
+
// In that case we don’t want to make a report about it because it’s not a llm execution error
|
|
8779
|
+
const executionPromptReport = {
|
|
8764
8780
|
prompt: {
|
|
8765
8781
|
...$ongoingTaskResult.$prompt,
|
|
8766
8782
|
// <- TODO: [🧠] How to pick everyhing except `pipelineUrl`
|
|
@@ -8769,7 +8785,11 @@ async function executeAttempts(options) {
|
|
|
8769
8785
|
error: $ongoingTaskResult.$expectError === null
|
|
8770
8786
|
? undefined
|
|
8771
8787
|
: serializeError($ongoingTaskResult.$expectError),
|
|
8772
|
-
}
|
|
8788
|
+
};
|
|
8789
|
+
$executionReport.promptExecutions.push(executionPromptReport);
|
|
8790
|
+
if (logLlmCall$1) {
|
|
8791
|
+
logLlmCall(logLlmCall$1, executionPromptReport);
|
|
8792
|
+
}
|
|
8773
8793
|
}
|
|
8774
8794
|
}
|
|
8775
8795
|
if ($ongoingTaskResult.$expectError !== null && attemptIndex === maxAttempts - 1) {
|
|
@@ -8834,9 +8854,9 @@ async function executeAttempts(options) {
|
|
|
8834
8854
|
* @private internal utility of `createPipelineExecutor`
|
|
8835
8855
|
*/
|
|
8836
8856
|
async function executeFormatSubvalues(options) {
|
|
8837
|
-
const { task, jokerParameterNames, parameters, priority, csvSettings, onProgress, pipelineIdentification } = options;
|
|
8857
|
+
const { task, jokerParameterNames, parameters, priority, csvSettings, onProgress, logLlmCall, pipelineIdentification, } = options;
|
|
8838
8858
|
if (task.foreach === undefined) {
|
|
8839
|
-
return /* not await */ executeAttempts(options);
|
|
8859
|
+
return /* not await */ executeAttempts({ ...options, logLlmCall });
|
|
8840
8860
|
}
|
|
8841
8861
|
if (jokerParameterNames.length !== 0) {
|
|
8842
8862
|
throw new UnexpectedError(spaceTrim$1((block) => `
|
|
@@ -9137,7 +9157,7 @@ async function getReservedParametersForTask(options) {
|
|
|
9137
9157
|
* @private internal utility of `createPipelineExecutor`
|
|
9138
9158
|
*/
|
|
9139
9159
|
async function executeTask(options) {
|
|
9140
|
-
const { currentTask, preparedPipeline, parametersToPass, tools, onProgress, $executionReport, pipelineIdentification, maxExecutionAttempts, maxParallelCount, csvSettings, isVerbose, rootDirname, cacheDirname, intermediateFilesStrategy, isAutoInstalled, isNotPreparedWarningSuppressed, } = options;
|
|
9160
|
+
const { currentTask, preparedPipeline, parametersToPass, tools, onProgress, logLlmCall, $executionReport, pipelineIdentification, maxExecutionAttempts, maxParallelCount, csvSettings, isVerbose, rootDirname, cacheDirname, intermediateFilesStrategy, isAutoInstalled, isNotPreparedWarningSuppressed, } = options;
|
|
9141
9161
|
const priority = preparedPipeline.tasks.length - preparedPipeline.tasks.indexOf(currentTask);
|
|
9142
9162
|
// Note: Check consistency of used and dependent parameters which was also done in `validatePipeline`, but it’s good to doublecheck
|
|
9143
9163
|
const usedParameterNames = extractParameterNamesFromTask(currentTask);
|
|
@@ -9216,6 +9236,7 @@ async function executeTask(options) {
|
|
|
9216
9236
|
tools,
|
|
9217
9237
|
$executionReport,
|
|
9218
9238
|
onProgress,
|
|
9239
|
+
logLlmCall,
|
|
9219
9240
|
pipelineIdentification,
|
|
9220
9241
|
maxExecutionAttempts,
|
|
9221
9242
|
maxParallelCount,
|
|
@@ -9259,6 +9280,29 @@ function filterJustOutputParameters(options) {
|
|
|
9259
9280
|
$warnings.push(new PipelineExecutionError(spaceTrim((block) => `
|
|
9260
9281
|
Parameter \`{${parameter.name}}\` should be an output parameter, but it was not generated during pipeline execution
|
|
9261
9282
|
|
|
9283
|
+
Note: This is a warning which happened after the pipeline was executed, and \`{${parameter.name}}\` was not for some reason defined in output parameters
|
|
9284
|
+
|
|
9285
|
+
All parameters:
|
|
9286
|
+
${block(preparedPipeline.parameters
|
|
9287
|
+
.map(({ name, isInput, isOutput, description }) => {
|
|
9288
|
+
let line = `\`{${name}}\``;
|
|
9289
|
+
if (isInput) {
|
|
9290
|
+
line += ' `[input parameter]`';
|
|
9291
|
+
}
|
|
9292
|
+
if (isOutput) {
|
|
9293
|
+
line += ' `[output parameter]`';
|
|
9294
|
+
}
|
|
9295
|
+
if (parametersToPass[name] === undefined) {
|
|
9296
|
+
line += ` <- Warning: Should be in the output but its not |`;
|
|
9297
|
+
}
|
|
9298
|
+
if (description) {
|
|
9299
|
+
line += ` ${description}`;
|
|
9300
|
+
}
|
|
9301
|
+
return line;
|
|
9302
|
+
})
|
|
9303
|
+
.map((line, index) => `${index + 1}) ${line}`)
|
|
9304
|
+
.join('\n'))}
|
|
9305
|
+
|
|
9262
9306
|
${block(pipelineIdentification)}
|
|
9263
9307
|
`)));
|
|
9264
9308
|
continue;
|
|
@@ -9279,7 +9323,7 @@ function filterJustOutputParameters(options) {
|
|
|
9279
9323
|
* @private internal utility of `createPipelineExecutor`
|
|
9280
9324
|
*/
|
|
9281
9325
|
async function executePipeline(options) {
|
|
9282
|
-
const { inputParameters, tools, onProgress, pipeline, setPreparedPipeline, pipelineIdentification, maxParallelCount, rootDirname, isVerbose, } = options;
|
|
9326
|
+
const { inputParameters, tools, onProgress, logLlmCall, pipeline, setPreparedPipeline, pipelineIdentification, maxParallelCount, rootDirname, isVerbose, } = options;
|
|
9283
9327
|
let { preparedPipeline } = options;
|
|
9284
9328
|
if (preparedPipeline === undefined) {
|
|
9285
9329
|
preparedPipeline = await preparePipeline(pipeline, tools, {
|
|
@@ -9457,6 +9501,7 @@ async function executePipeline(options) {
|
|
|
9457
9501
|
onProgress(newOngoingResult);
|
|
9458
9502
|
}
|
|
9459
9503
|
},
|
|
9504
|
+
logLlmCall,
|
|
9460
9505
|
$executionReport: executionReport,
|
|
9461
9506
|
pipelineIdentification: spaceTrim((block) => `
|
|
9462
9507
|
${block(pipelineIdentification)}
|
|
@@ -9580,7 +9625,7 @@ function createPipelineExecutor(options) {
|
|
|
9580
9625
|
// <- TODO: [🏮] Some standard way how to transform errors into warnings and how to handle non-critical fails during the tasks
|
|
9581
9626
|
}
|
|
9582
9627
|
let runCount = 0;
|
|
9583
|
-
const pipelineExecutorWithCallback = async (inputParameters, onProgress) => {
|
|
9628
|
+
const pipelineExecutorWithCallback = async (inputParameters, onProgress, logLlmCall) => {
|
|
9584
9629
|
runCount++;
|
|
9585
9630
|
return /* not await */ executePipeline({
|
|
9586
9631
|
pipeline,
|
|
@@ -9591,6 +9636,7 @@ function createPipelineExecutor(options) {
|
|
|
9591
9636
|
inputParameters,
|
|
9592
9637
|
tools,
|
|
9593
9638
|
onProgress,
|
|
9639
|
+
logLlmCall,
|
|
9594
9640
|
pipelineIdentification: spaceTrim((block) => `
|
|
9595
9641
|
${block(pipelineIdentification)}
|
|
9596
9642
|
${runCount === 1 ? '' : `Run #${runCount}`}
|
|
@@ -11233,8 +11279,6 @@ new $Register('book_transpilers');
|
|
|
11233
11279
|
* TODO: [®] DRY Register logic
|
|
11234
11280
|
*/
|
|
11235
11281
|
|
|
11236
|
-
var logoAsset = "data:image/png;base64,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";
|
|
11237
|
-
|
|
11238
11282
|
/**
|
|
11239
11283
|
* Provide information about Promptbook, engine version, book language version, servers, ...
|
|
11240
11284
|
*
|
|
@@ -11255,11 +11299,6 @@ function aboutPromptbookInformation(options) {
|
|
|
11255
11299
|
- [Promptbook engine version \`${PROMPTBOOK_ENGINE_VERSION}\`](https://github.com/webgptorg/promptbook)
|
|
11256
11300
|
- [Book language version \`${BOOK_LANGUAGE_VERSION}\`](https://github.com/webgptorg/book)
|
|
11257
11301
|
|
|
11258
|
-
|
|
11259
|
-
**Logo in Markdown:**
|
|
11260
|
-
|
|
11261
|
-

|
|
11262
|
-
|
|
11263
11302
|
`);
|
|
11264
11303
|
fullInfoPieces.push(basicInfo);
|
|
11265
11304
|
if (isServersInfoIncluded) {
|
|
@@ -11527,16 +11566,14 @@ function MarkdownContent(props) {
|
|
|
11527
11566
|
} }));
|
|
11528
11567
|
}
|
|
11529
11568
|
|
|
11530
|
-
var logo3dAsset = "data:model/stl;base64,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";
|
|
11531
|
-
|
|
11532
11569
|
/**
|
|
11533
11570
|
* Provide information about Promptbook, engine version, book language version, servers, ...
|
|
11534
11571
|
*
|
|
11535
11572
|
* @public exported from `@promptbook/components`
|
|
11536
11573
|
*/
|
|
11537
11574
|
function AboutPromptbookInformation(props) {
|
|
11538
|
-
console.log('!!!', { logoAsset
|
|
11539
|
-
return (
|
|
11575
|
+
// console.log('!!!', { logoAsset /* logo3dAsset */ });
|
|
11576
|
+
return (jsx(Fragment, { children: jsx(MarkdownContent, { content: aboutPromptbookInformation(props) }) }));
|
|
11540
11577
|
}
|
|
11541
11578
|
|
|
11542
11579
|
/**
|
|
@@ -11597,7 +11634,7 @@ var iconAsset = "data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3
|
|
|
11597
11634
|
*/
|
|
11598
11635
|
function ExitFullscreenIcon() {
|
|
11599
11636
|
console.log('!!!', { iconAsset });
|
|
11600
|
-
return jsx("img", { src: iconAsset
|
|
11637
|
+
return jsx("img", { src: iconAsset, alt: "Exit Fullscreen Icon", width: 20, height: 20 });
|
|
11601
11638
|
// <- Set the size as needed
|
|
11602
11639
|
/*
|
|
11603
11640
|
return (
|
|
@@ -11731,10 +11768,15 @@ function BookEditorMonaco(props) {
|
|
|
11731
11768
|
const scaledFontSize = Math.max(8, Math.round(baseFontSize * zoomLevel));
|
|
11732
11769
|
const scaledScrollbarSize = Math.max(2, Math.round(5 * zoomLevel));
|
|
11733
11770
|
const [isDragOver, setIsDragOver] = useState(false);
|
|
11771
|
+
const [editor, setEditor] = useState(null);
|
|
11772
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
11773
|
+
const [isTouchDevice, setIsTouchDevice] = useState(false);
|
|
11734
11774
|
const monaco = useMonaco();
|
|
11735
11775
|
// stable unique id for this instance
|
|
11736
11776
|
const instanceIdRef = useRef(++notebookStyleCounter);
|
|
11737
11777
|
const instanceClass = `book-editor-instance-${instanceIdRef.current}`;
|
|
11778
|
+
// [1] Track touch start position to differentiate tap from drag
|
|
11779
|
+
const touchStartRef = useRef(null);
|
|
11738
11780
|
/*
|
|
11739
11781
|
Note+TODO: [🚱] Yjs logic is commented out because it causes errors in the build of Next.js projects:
|
|
11740
11782
|
> ▲ Next.js 15.4.5
|
|
@@ -11776,6 +11818,25 @@ function BookEditorMonaco(props) {
|
|
|
11776
11818
|
};
|
|
11777
11819
|
}, [monaco, editor, sync]);
|
|
11778
11820
|
*/
|
|
11821
|
+
useEffect(() => {
|
|
11822
|
+
// Note: Test on client side only
|
|
11823
|
+
setIsTouchDevice(typeof window !== 'undefined' && window.matchMedia('(pointer: coarse)').matches);
|
|
11824
|
+
}, []);
|
|
11825
|
+
useEffect(() => {
|
|
11826
|
+
if (!editor) {
|
|
11827
|
+
return;
|
|
11828
|
+
}
|
|
11829
|
+
const focusListener = editor.onDidFocusEditorWidget(() => {
|
|
11830
|
+
setIsFocused(true);
|
|
11831
|
+
});
|
|
11832
|
+
const blurListener = editor.onDidBlurEditorWidget(() => {
|
|
11833
|
+
setIsFocused(false);
|
|
11834
|
+
});
|
|
11835
|
+
return () => {
|
|
11836
|
+
focusListener.dispose();
|
|
11837
|
+
blurListener.dispose();
|
|
11838
|
+
};
|
|
11839
|
+
}, [editor]);
|
|
11779
11840
|
useEffect(() => {
|
|
11780
11841
|
if (!monaco) {
|
|
11781
11842
|
return;
|
|
@@ -11899,7 +11960,7 @@ function BookEditorMonaco(props) {
|
|
|
11899
11960
|
const uploadResults = await Promise.all(uploadPromises);
|
|
11900
11961
|
// Note: This is a simplified implementation. A more robust solution would
|
|
11901
11962
|
// determine the drop position in the editor and insert the text there.
|
|
11902
|
-
const newText = uploadResults.join('\n');
|
|
11963
|
+
const newText = uploadResults.map((fileSrc) => `KNOWLEDGE { ${fileSrc} }`).join('\n');
|
|
11903
11964
|
const currentValue = value || '';
|
|
11904
11965
|
const newValue = currentValue + '\n' + newText;
|
|
11905
11966
|
onChange === null || onChange === void 0 ? void 0 : onChange(newValue);
|
|
@@ -11925,36 +11986,72 @@ function BookEditorMonaco(props) {
|
|
|
11925
11986
|
isAboutButtonShown,
|
|
11926
11987
|
isFullscreenButtonShown,
|
|
11927
11988
|
onFullscreenClick,
|
|
11928
|
-
isFullscreen })), isDragOver && jsx("div", { className: styles$4.dropOverlay, children: "Drop files to upload" }),
|
|
11929
|
-
|
|
11930
|
-
|
|
11931
|
-
|
|
11932
|
-
|
|
11933
|
-
|
|
11934
|
-
|
|
11935
|
-
|
|
11936
|
-
|
|
11937
|
-
|
|
11938
|
-
|
|
11939
|
-
|
|
11940
|
-
|
|
11941
|
-
|
|
11942
|
-
|
|
11943
|
-
|
|
11944
|
-
|
|
11945
|
-
|
|
11946
|
-
|
|
11947
|
-
|
|
11948
|
-
|
|
11949
|
-
|
|
11950
|
-
|
|
11951
|
-
|
|
11952
|
-
|
|
11953
|
-
|
|
11954
|
-
|
|
11955
|
-
|
|
11956
|
-
|
|
11957
|
-
|
|
11989
|
+
isFullscreen })), isDragOver && jsx("div", { className: styles$4.dropOverlay, children: "Drop files to upload" }), jsxs("div", { style: {
|
|
11990
|
+
position: 'relative',
|
|
11991
|
+
flex: 1,
|
|
11992
|
+
height: '100%',
|
|
11993
|
+
width: '100%',
|
|
11994
|
+
// outline: '1px dotted #ff3333'
|
|
11995
|
+
}, children: [isTouchDevice && !isFocused && (jsx("div", { style: {
|
|
11996
|
+
position: 'absolute',
|
|
11997
|
+
top: 0,
|
|
11998
|
+
left: 0,
|
|
11999
|
+
right: 0,
|
|
12000
|
+
bottom: 0,
|
|
12001
|
+
zIndex: 20,
|
|
12002
|
+
height: '100%',
|
|
12003
|
+
width: '100%',
|
|
12004
|
+
backgroundColor: 'transparent',
|
|
12005
|
+
// outline: '1px dotted #ff3333',
|
|
12006
|
+
}, onTouchStart: (event) => {
|
|
12007
|
+
// [1] Record the starting position of the touch
|
|
12008
|
+
const touch = event.touches[0];
|
|
12009
|
+
if (touch) {
|
|
12010
|
+
touchStartRef.current = { x: touch.clientX, y: touch.clientY };
|
|
12011
|
+
}
|
|
12012
|
+
}, onTouchEnd: (event) => {
|
|
12013
|
+
event.preventDefault();
|
|
12014
|
+
// [1] Check if this was a tap (not a drag)
|
|
12015
|
+
const touch = event.changedTouches[0];
|
|
12016
|
+
if (touch && touchStartRef.current) {
|
|
12017
|
+
const deltaX = Math.abs(touch.clientX - touchStartRef.current.x);
|
|
12018
|
+
const deltaY = Math.abs(touch.clientY - touchStartRef.current.y);
|
|
12019
|
+
const threshold = 10; // pixels
|
|
12020
|
+
// [1] Only focus if the touch hasn't moved much (it's a tap)
|
|
12021
|
+
if (deltaX < threshold && deltaY < threshold) {
|
|
12022
|
+
// alert('Tap inside the book editor to focus and start editing.');
|
|
12023
|
+
editor === null || editor === void 0 ? void 0 : editor.focus();
|
|
12024
|
+
}
|
|
12025
|
+
}
|
|
12026
|
+
touchStartRef.current = null;
|
|
12027
|
+
} })), jsx(Editor, { language: BOOK_LANGUAGE_ID, value: value, onMount: (editor) => setEditor(editor), onChange: (newValue) => onChange === null || onChange === void 0 ? void 0 : onChange(newValue), options: {
|
|
12028
|
+
readOnly: isReadonly,
|
|
12029
|
+
readOnlyMessage: {
|
|
12030
|
+
value: (translations === null || translations === void 0 ? void 0 : translations.readonlyMessage) || 'You cannot edit this book',
|
|
12031
|
+
},
|
|
12032
|
+
wordWrap: 'on',
|
|
12033
|
+
minimap: { enabled: false },
|
|
12034
|
+
lineNumbers: 'off',
|
|
12035
|
+
fontSize: scaledFontSize,
|
|
12036
|
+
// TODO: [🚚] Allow to pass font family as prop + Make the font asset hosted on Promptbook CDN side
|
|
12037
|
+
// <- TODO: !!! Pass font as asset
|
|
12038
|
+
fontFamily: `"Playfair Display", serif`,
|
|
12039
|
+
// [🚚]> fontFamily: `"Bitcount Grid Single", system-ui`,
|
|
12040
|
+
lineHeight: scaledLineHeight,
|
|
12041
|
+
renderLineHighlight: 'none',
|
|
12042
|
+
// Note: To add little lines between each line of the book, like a notebook page
|
|
12043
|
+
lineDecorationsWidth: scaledContentPaddingLeft,
|
|
12044
|
+
glyphMargin: false,
|
|
12045
|
+
folding: false,
|
|
12046
|
+
lineNumbersMinChars: 0,
|
|
12047
|
+
scrollbar: {
|
|
12048
|
+
vertical: 'auto',
|
|
12049
|
+
horizontal: 'hidden',
|
|
12050
|
+
verticalScrollbarSize: scaledScrollbarSize,
|
|
12051
|
+
arrowSize: 0,
|
|
12052
|
+
useShadows: false,
|
|
12053
|
+
},
|
|
12054
|
+
}, loading: jsx("div", { className: styles$4.loading, children: "\uD83D\uDCD6" }) })] })] }));
|
|
11958
12055
|
}
|
|
11959
12056
|
|
|
11960
12057
|
/**
|