| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- {
- "version": "3.16",
- "name": "ThemeCustomize",
- "description": "Customize project theme: regenerate .vth theme tokens and cascade-update all components that use theme references.",
- "sectionMerge": true,
- "registry": {
- "params": [
- "themeRequest(STRING)",
- "currentMeta(OBJECT)"
- ],
- "services": [],
- "apis": [],
- "components": [],
- "vars": [
- "$currentTheme(STRING)",
- "$newTheme(STRING)",
- "$affectedComponents(OBJECT)",
- "$updatedFiles(OBJECT)"
- ],
- "files": {
- "inputs": [
- ".vl-code/ProjectMeta.json",
- "Theme/*"
- ],
- "artifacts": [
- "Theme/*",
- "ExtComponents/*",
- "Sections/*"
- ]
- },
- "docs": {
- "1": "VL Syntax Rules",
- "101": "Agent-GenTheme-Prompt"
- }
- },
- "steps": [
- {
- "id": "LLM_010_AnalyzeTheme",
- "meta": {
- "title": "1. Analyze current theme and plan changes"
- },
- "in": {
- "docs": [
- "1"
- ],
- "max_tokens": 32768,
- "messages": [
- {
- "role": "user",
- "content": "Current ProjectMeta:"
- },
- {
- "role": "user",
- "content": "=currentMeta"
- },
- {
- "role": "user",
- "content": "Theme customization request:"
- },
- {
- "role": "user",
- "content": "=themeRequest"
- },
- {
- "role": "user",
- "content": "Analyze the current theme and plan the changes. Return JSON with: tokenChanges([{token, oldValue, newValue}]), affectedFiles([{file, reason}]), summary(STRING)."
- }
- ],
- "output_config": {
- "format": {
- "type": "json_object"
- }
- }
- },
- "out": {
- "$affectedComponents": "=_result.affectedFiles"
- },
- "next": "LLM_020_GenTheme"
- },
- {
- "id": "LLM_020_GenTheme",
- "meta": {
- "title": "2. Regenerate theme file"
- },
- "in": {
- "docs": [
- "1",
- "101"
- ],
- "max_tokens": 32768,
- "stream": true,
- "readFiles": [
- "=currentMeta.theme.file || currentMeta.config.themeFile || 'Theme/Theme.vth'"
- ],
- "messages": [
- {
- "role": "user",
- "content": "Current ProjectMeta:"
- },
- {
- "role": "user",
- "content": "=currentMeta"
- },
- {
- "role": "user",
- "content": "Theme customization request:"
- },
- {
- "role": "user",
- "content": "=themeRequest"
- },
- {
- "role": "user",
- "content": "Current theme file path:"
- },
- {
- "role": "user",
- "content": "=currentMeta.theme.file || currentMeta.config.themeFile || 'Theme/Theme.vth'"
- },
- {
- "role": "user",
- "content": "Generate the COMPLETE updated .vth theme file with the requested changes applied. Preserve unaffected tokens and structure.\n\nIMPORTANT: The file MUST start with '// VL_VERSION:3.7' as the first non-empty line."
- }
- ]
- },
- "out": {
- "$newTheme": "=_result",
- "/{currentMeta.theme.file || currentMeta.config.themeFile || 'Theme/Theme.vth'}": "=_result"
- },
- "next": "Branch_NeedCascade"
- },
- {
- "id": "Branch_NeedCascade",
- "meta": {
- "title": "3. Check if cascade updates needed"
- },
- "cases": [
- {
- "condition": "=$affectedComponents.length > 0",
- "next": "Loop_UpdateFiles"
- }
- ],
- "default": "Stop_Done"
- },
- {
- "id": "Loop_UpdateFiles",
- "meta": {
- "title": "3a. Cascade-update affected files"
- },
- "source": "=$affectedComponents",
- "children": [
- "LLM_030_UpdateFile"
- ],
- "next": "Stop_Done"
- },
- {
- "id": "LLM_030_UpdateFile",
- "meta": {
- "title": "Update: =_item.file"
- },
- "in": {
- "docs": [
- "1"
- ],
- "max_tokens": 32768,
- "stream": true,
- "readFiles": [
- "=_item.file"
- ],
- "messages": [
- {
- "role": "user",
- "content": "New Theme:"
- },
- {
- "role": "user",
- "content": "=$newTheme"
- },
- {
- "role": "user",
- "content": "Update this file to use the new theme tokens. Use sectionMerge semantics: preserve all unaffected logic/layout and only modify the theme-related parts that need changing."
- },
- {
- "role": "user",
- "content": "File: =_item.file"
- },
- {
- "role": "user",
- "content": "Reason: =_item.reason"
- },
- {
- "role": "user",
- "content": "Output the COMPLETE updated file. Preserve the existing file shape and start VL source files with '// VL_VERSION:3.7'."
- }
- ]
- },
- "out": {
- "/{_item.file}": "=_result"
- },
- "onError": "skip"
- },
- {
- "id": "Stop_Done",
- "meta": {
- "title": "Done — Theme customized"
- }
- }
- ]
- }
|