@vertesia/build-tools 1.0.0-dev.20260305.083323Z → 1.0.0
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/lib/build-tools.js +5 -0
- package/lib/build-tools.js.map +1 -1
- package/package.json +14 -7
package/lib/build-tools.js
CHANGED
|
@@ -1077,6 +1077,7 @@ var RunSourceTypes;
|
|
|
1077
1077
|
RunSourceTypes["webhook"] = "webhook";
|
|
1078
1078
|
RunSourceTypes["test"] = "test-data";
|
|
1079
1079
|
RunSourceTypes["system"] = "system";
|
|
1080
|
+
RunSourceTypes["schedule"] = "schedule";
|
|
1080
1081
|
})(RunSourceTypes || (RunSourceTypes = {}));
|
|
1081
1082
|
var ConfigModes;
|
|
1082
1083
|
(function (ConfigModes) {
|
|
@@ -1400,7 +1401,9 @@ var ImagenMaskMode;
|
|
|
1400
1401
|
var ThinkingLevel;
|
|
1401
1402
|
(function (ThinkingLevel) {
|
|
1402
1403
|
ThinkingLevel["HIGH"] = "HIGH";
|
|
1404
|
+
ThinkingLevel["MEDIUM"] = "MEDIUM";
|
|
1403
1405
|
ThinkingLevel["LOW"] = "LOW";
|
|
1406
|
+
ThinkingLevel["MINIMAL"] = "MINIMAL";
|
|
1404
1407
|
ThinkingLevel["THINKING_LEVEL_UNSPECIFIED"] = "THINKING_LEVEL_UNSPECIFIED";
|
|
1405
1408
|
})(ThinkingLevel || (ThinkingLevel = {}));
|
|
1406
1409
|
|
|
@@ -1695,6 +1698,7 @@ var AgentMessageType;
|
|
|
1695
1698
|
AgentMessageType[AgentMessageType["TERMINATED"] = 11] = "TERMINATED";
|
|
1696
1699
|
AgentMessageType[AgentMessageType["STREAMING_CHUNK"] = 12] = "STREAMING_CHUNK";
|
|
1697
1700
|
AgentMessageType[AgentMessageType["BATCH_PROGRESS"] = 13] = "BATCH_PROGRESS";
|
|
1701
|
+
AgentMessageType[AgentMessageType["RESTARTING"] = 14] = "RESTARTING";
|
|
1698
1702
|
})(AgentMessageType || (AgentMessageType = {}));
|
|
1699
1703
|
// ============================================
|
|
1700
1704
|
// CONVERTERS
|
|
@@ -1793,6 +1797,7 @@ var ApiVersions;
|
|
|
1793
1797
|
(function (ApiVersions) {
|
|
1794
1798
|
ApiVersions[ApiVersions["COMPLETION_RESULT_V1"] = 20250925] = "COMPLETION_RESULT_V1";
|
|
1795
1799
|
ApiVersions[ApiVersions["DOWNLOAD_URL_NO_MIME_TYPE_V1"] = 20260210] = "DOWNLOAD_URL_NO_MIME_TYPE_V1";
|
|
1800
|
+
ApiVersions[ApiVersions["MEDIA_BLOB_STORAGE_V1"] = 20260319] = "MEDIA_BLOB_STORAGE_V1";
|
|
1796
1801
|
})(ApiVersions || (ApiVersions = {}));
|
|
1797
1802
|
|
|
1798
1803
|
/**
|
package/lib/build-tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-tools.js","sources":["esm/utils/asset-copy.js","esm/utils/widget-compiler.js","esm/plugin.js","esm/parsers/frontmatter.js","esm/utils/asset-discovery.js","esm/presets/skill.js","esm/presets/skill-collection.js","esm/utils/template-asset-discovery.js","esm/presets/template.js","esm/presets/template-collection.js","esm/presets/raw.js","../../common/lib/esm/access-control.js","../../common/lib/esm/apikey.js","../../common/lib/esm/interaction.js","../../common/lib/esm/data-platform.js","../../../llumiverse/common/lib/esm/types.js","../../../llumiverse/common/lib/esm/options/fallback.js","../../../llumiverse/common/lib/esm/options/vertexai.js","../../common/lib/esm/environment.js","../../common/lib/esm/integrations.js","../../common/lib/esm/meters.js","../../common/lib/esm/project.js","../../common/lib/esm/prompt.js","../../common/lib/esm/refs.js","../../common/lib/esm/store/collections.js","../../common/lib/esm/store/store.js","../../common/lib/esm/store/workflow.js","../../common/lib/esm/training.js","../../common/lib/esm/transient-tokens.js","../../common/lib/esm/user.js","../../common/lib/esm/versions.js","../../common/lib/esm/workflow-analytics.js","esm/presets/prompt.js"],"sourcesContent":["/**\n * Utilities for copying asset files during build\n */\nimport { copyFileSync, mkdirSync } from 'node:fs';\nimport path from 'node:path';\n/**\n * Ensure a directory exists, creating it recursively if needed\n */\nfunction ensureDirectory(dirPath) {\n try {\n mkdirSync(dirPath, { recursive: true });\n }\n catch (error) {\n // Ignore if directory already exists\n if (error.code !== 'EEXIST') {\n throw error;\n }\n }\n}\n/**\n * Copy an asset file to its destination\n *\n * @param asset - Asset file information\n * @param assetsRoot - Root directory for assets\n */\nexport function copyAssetFile(asset, assetsRoot) {\n const destPath = path.join(assetsRoot, asset.destPath);\n const destDir = path.dirname(destPath);\n // Ensure destination directory exists\n ensureDirectory(destDir);\n // Copy file\n try {\n copyFileSync(asset.sourcePath, destPath);\n }\n catch (error) {\n throw new Error(`Failed to copy asset from ${asset.sourcePath} to ${destPath}: ${error instanceof Error ? error.message : String(error)}`);\n }\n}\n/**\n * Copy multiple asset files\n *\n * @param assets - Array of asset files to copy\n * @param assetsRoot - Root directory for assets\n * @returns Number of files copied\n */\nexport function copyAssets(assets, assetsRoot) {\n let copied = 0;\n for (const asset of assets) {\n copyAssetFile(asset, assetsRoot);\n copied++;\n }\n return copied;\n}\n//# sourceMappingURL=asset-copy.js.map","/**\n * Widget compilation utility using Rollup\n */\nimport { rollup } from 'rollup';\nimport path from 'node:path';\n/**\n * Default external dependencies for widgets\n */\nconst DEFAULT_EXTERNALS = [\n 'react',\n 'react-dom',\n 'react/jsx-runtime',\n 'react/jsx-dev-runtime',\n 'react-dom/client'\n];\n/**\n * Compile widgets using Rollup\n *\n * @param widgets - Array of widget metadata to compile\n * @param outputDir - Directory to write compiled widgets\n * @param config - Widget compilation configuration\n * @returns Number of widgets compiled\n */\nexport async function compileWidgets(widgets, outputDir, config = {}) {\n if (widgets.length === 0) {\n return 0;\n }\n const { external = DEFAULT_EXTERNALS, tsconfig = './tsconfig.json', typescript: typescriptOptions = {}, minify = false } = config;\n // Build each widget separately to get individual bundles\n const buildPromises = widgets.map(async (widget) => {\n // Dynamically import plugins - use any to bypass TypeScript module resolution issues\n const typescript = (await import('@rollup/plugin-typescript')).default;\n const nodeResolve = (await import('@rollup/plugin-node-resolve')).default;\n const commonjs = (await import('@rollup/plugin-commonjs')).default;\n const plugins = [\n typescript({\n tsconfig,\n declaration: false,\n sourceMap: true,\n ...typescriptOptions\n }),\n nodeResolve({\n browser: true,\n preferBuiltins: false,\n extensions: ['.tsx', '.ts', '.jsx', '.js']\n }),\n commonjs()\n ];\n // Add minification if requested\n if (minify) {\n const { terser } = await import('rollup-plugin-terser');\n plugins.push(terser({\n compress: {\n drop_console: false\n }\n }));\n }\n const rollupConfig = {\n input: widget.path,\n output: {\n file: path.join(outputDir, `${widget.name}.js`),\n format: 'es',\n sourcemap: true,\n inlineDynamicImports: true\n },\n external,\n plugins\n };\n const bundle = await rollup(rollupConfig);\n await bundle.write(rollupConfig.output);\n await bundle.close();\n });\n await Promise.all(buildPromises);\n return widgets.length;\n}\n//# sourceMappingURL=widget-compiler.js.map","/**\n * Core Rollup plugin implementation for transforming imports\n */\nimport { readFileSync } from 'node:fs';\nimport path from 'node:path';\nimport { copyAssets } from './utils/asset-copy.js';\nimport { compileWidgets } from './utils/widget-compiler.js';\n/**\n * Creates a Rollup plugin that transforms imports based on configured rules\n */\nexport function vertesiaImportPlugin(config) {\n const { transformers, assetsDir = './dist', widgetConfig } = config;\n if (!transformers || transformers.length === 0) {\n throw new Error('vertesiaImportPlugin: At least one transformer must be configured');\n }\n // Track assets to copy and widgets to compile\n const assetsToProcess = [];\n const widgetsToCompile = [];\n const shouldCopyAssets = assetsDir !== false;\n const shouldCompileWidgets = widgetConfig !== undefined && assetsDir !== false;\n return {\n name: 'vertesia-import-plugin',\n /**\n * Resolve import IDs to handle pattern-based imports\n */\n resolveId(source, importer) {\n // Check if any transformer pattern matches\n for (const transformer of transformers) {\n if (transformer.pattern.test(source)) {\n // Handle relative imports\n if (source.startsWith('.') && importer) {\n const cleanSource = source.replace(transformer.pattern, '');\n // Strip query parameters from importer to get the file path\n const cleanImporter = importer.indexOf('?') >= 0\n ? importer.substring(0, importer.indexOf('?'))\n : importer;\n // Always use dirname to get the directory containing the importer\n const baseDir = path.dirname(cleanImporter);\n const resolved = path.resolve(baseDir, cleanSource);\n // Return with the pattern suffix to identify it in load\n const suffix = source.match(transformer.pattern)?.[0] || '';\n return resolved + suffix;\n }\n return source;\n }\n }\n return null; // Let other plugins handle it\n },\n /**\n * Load and transform the file content\n */\n async load(id) {\n // Find matching transformer\n let matchedTransformer;\n let cleanId = id;\n for (const transformer of transformers) {\n if (transformer.pattern.test(id)) {\n matchedTransformer = transformer;\n // Remove query parameters to get actual file path\n // For example: '/path/file.md?skill' -> '/path/file.md'\n // '/path/file.html?raw' -> '/path/file.html'\n const queryIndex = id.indexOf('?');\n cleanId = queryIndex >= 0 ? id.substring(0, queryIndex) : id;\n break;\n }\n }\n if (!matchedTransformer) {\n return null; // Not for us\n }\n try {\n // Read file content (skip for virtual transforms)\n const content = matchedTransformer.virtual\n ? ''\n : readFileSync(cleanId, 'utf-8');\n // Transform the content\n const result = await matchedTransformer.transform(content, cleanId);\n // Collect assets if any\n if (result.assets && shouldCopyAssets) {\n assetsToProcess.push(...result.assets);\n }\n // Collect widgets if any\n if (result.widgets && shouldCompileWidgets) {\n widgetsToCompile.push(...result.widgets);\n }\n // Validate if schema provided\n if (matchedTransformer.schema) {\n const validation = matchedTransformer.schema.safeParse(result.data);\n if (!validation.success) {\n const errors = validation.error.errors\n .map((err) => ` - ${err.path.join('.')}: ${err.message}`)\n .join('\\n');\n throw new Error(`Validation failed for ${id}:\\n${errors}`);\n }\n }\n // Generate code\n const imports = result.imports ? result.imports.join('\\n') + '\\n\\n' : '';\n if (result.code) {\n // Custom code provided - prepend imports\n return imports + result.code;\n }\n else {\n // Default: export data (escape if string, otherwise stringify as JSON)\n const dataJson = JSON.stringify(result.data, null, 2);\n return `${imports}export default ${dataJson};`;\n }\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n this.error(`Failed to transform ${id}: ${message}`);\n }\n },\n /**\n * Copy assets and compile widgets after all modules are loaded\n */\n async buildEnd() {\n // Copy script assets\n if (shouldCopyAssets && assetsToProcess.length > 0) {\n try {\n const copied = copyAssets(assetsToProcess, assetsDir);\n console.log(`Copied ${copied} asset file(s) to ${assetsDir}`);\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n this.warn(`Failed to copy assets: ${message}`);\n }\n }\n // Compile widgets\n if (shouldCompileWidgets && widgetsToCompile.length > 0) {\n try {\n const widgetsDir = config.widgetsDir || 'widgets';\n const outputDir = path.join(assetsDir, widgetsDir);\n console.log(`Compiling ${widgetsToCompile.length} widget(s)...`);\n const compiled = await compileWidgets(widgetsToCompile, outputDir, widgetConfig);\n console.log(`Compiled ${compiled} widget(s) to ${outputDir}`);\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n this.error(`Failed to compile widgets: ${message}`);\n }\n }\n }\n };\n}\n//# sourceMappingURL=plugin.js.map","/**\n * Frontmatter parser utility using gray-matter\n */\nimport matter from 'gray-matter';\n/**\n * Parse YAML frontmatter from markdown content\n *\n * @param content - Raw markdown content with optional frontmatter\n * @returns Parsed frontmatter and content\n */\nexport function parseFrontmatter(content) {\n const result = matter(content);\n return {\n frontmatter: result.data,\n content: result.content,\n original: content\n };\n}\n//# sourceMappingURL=frontmatter.js.map","/**\n * Utilities for discovering asset files (scripts, widgets) in skill directories\n */\nimport { readdirSync, statSync } from 'node:fs';\nimport path from 'node:path';\n/**\n * Check if a file exists and is a regular file\n */\nfunction isFile(filePath) {\n try {\n return statSync(filePath).isFile();\n }\n catch {\n return false;\n }\n}\n/**\n * Get all files in a directory (non-recursive)\n */\nfunction getFilesInDirectory(dirPath) {\n try {\n return readdirSync(dirPath).filter(file => {\n const fullPath = path.join(dirPath, file);\n return isFile(fullPath);\n });\n }\n catch {\n return [];\n }\n}\n/**\n * Check if a file is a script file (.js or .py)\n */\nfunction isScriptFile(fileName) {\n return /\\.(js|py)$/.test(fileName);\n}\n/**\n * Check if a file is a widget file (.tsx)\n */\nfunction isWidgetFile(fileName) {\n return /\\.tsx$/.test(fileName);\n}\n/**\n * Extract widget name from .tsx file (remove extension)\n */\nfunction getWidgetName(fileName) {\n return fileName.replace(/\\.tsx$/, '');\n}\n/**\n * Discover assets (scripts and widgets) in a skill directory\n *\n * @param skillFilePath - Absolute path to the skill.md file\n * @param options - Asset discovery options\n * @returns Discovered assets and metadata\n */\nexport function discoverSkillAssets(skillFilePath, options = {}) {\n const skillDir = path.dirname(skillFilePath);\n const files = getFilesInDirectory(skillDir);\n const scripts = [];\n const widgets = [];\n const widgetMetadata = [];\n const assetFiles = [];\n const scriptsDir = options.scriptsDir || 'scripts';\n for (const file of files) {\n const fullPath = path.join(skillDir, file);\n if (isScriptFile(file)) {\n // Script file (.js or .py)\n scripts.push(file);\n assetFiles.push({\n sourcePath: fullPath,\n destPath: path.join(scriptsDir, file),\n type: 'script'\n });\n }\n else if (isWidgetFile(file)) {\n // Widget file (.tsx)\n const widgetName = getWidgetName(file);\n widgets.push(widgetName);\n widgetMetadata.push({\n name: widgetName,\n path: fullPath\n });\n // Note: We don't add widget .tsx files to assetFiles\n // Widgets are compiled by the plugin if widgetConfig is provided\n }\n }\n return {\n scripts,\n widgets,\n widgetMetadata,\n assetFiles\n };\n}\n//# sourceMappingURL=asset-discovery.js.map","/**\n * Skill transformer preset for markdown files with frontmatter\n */\nimport path from 'node:path';\nimport { existsSync } from 'node:fs';\nimport { z } from 'zod';\nimport { parseFrontmatter } from '../parsers/frontmatter.js';\nimport { discoverSkillAssets } from '../utils/asset-discovery.js';\n/**\n * Context triggers for auto-injection of skills (for frontmatter validation)\n */\nconst SkillContextTriggersFrontmatterSchema = z.object({\n keywords: z.array(z.string()).optional(),\n tool_names: z.array(z.string()).optional(),\n data_patterns: z.array(z.string()).optional()\n}).strict();\n/**\n * Context triggers for auto-injection of skills (for output validation)\n */\nconst SkillContextTriggersSchema = z.object({\n keywords: z.array(z.string()).optional(),\n tool_names: z.array(z.string()).optional(),\n data_patterns: z.array(z.string()).optional()\n}).optional();\n/**\n * Execution configuration for skills that need code execution (for frontmatter validation)\n */\nconst SkillExecutionFrontmatterSchema = z.object({\n language: z.string(),\n packages: z.array(z.string()).optional(),\n system_packages: z.array(z.string()).optional(),\n template: z.string().optional()\n}).strict();\n/**\n * Execution configuration for skills that need code execution (for output validation)\n */\nconst SkillExecutionSchema = z.object({\n language: z.string(),\n packages: z.array(z.string()).optional(),\n system_packages: z.array(z.string()).optional(),\n template: z.string().optional()\n}).optional();\n/**\n * Zod schema for skill frontmatter validation\n * This validates the YAML frontmatter before transformation\n * Supports both flat and nested structures\n */\nconst SkillFrontmatterSchema = z.object({\n // Required fields\n name: z.string().min(1, 'Skill name is required'),\n description: z.string().min(1, 'Skill description is required'),\n // Optional fields\n title: z.string().optional(),\n content_type: z.enum(['md', 'jst']).optional(),\n // Flat structure fields (legacy)\n keywords: z.array(z.string()).optional(),\n tools: z.array(z.string()).optional(),\n data_patterns: z.array(z.string()).optional(),\n language: z.string().optional(),\n packages: z.array(z.string()).optional(),\n system_packages: z.array(z.string()).optional(),\n // Nested structure fields\n context_triggers: SkillContextTriggersFrontmatterSchema.optional(),\n execution: SkillExecutionFrontmatterSchema.optional(),\n related_tools: z.array(z.string()).optional(),\n input_schema: z.object({\n type: z.literal('object'),\n properties: z.record(z.any()).optional(),\n required: z.array(z.string()).optional()\n }).optional(),\n // Asset fields (auto-discovered but can be overridden)\n scripts: z.array(z.string()).optional(),\n widgets: z.array(z.string()).optional()\n}).strict();\n/**\n * MUST be kept in sync with @vertesia/tools-sdk SkillDefinition\n * Zod schema for skill definition\n * This validates the structure of skill objects generated from markdown\n * Matches the SkillDefinition interface from @vertesia/tools-sdk\n *\n * Note: The isEnabled property is not included in this schema because Zod cannot\n * properly validate function signatures. It will be type-checked by TypeScript instead.\n */\nexport const SkillDefinitionSchema = z.object({\n name: z.string().min(1, 'Skill name is required'),\n title: z.string().optional(),\n description: z.string().min(1, 'Skill description is required'),\n instructions: z.string(),\n content_type: z.enum(['md', 'jst']),\n input_schema: z.object({\n type: z.literal('object'),\n properties: z.record(z.any()).optional(),\n required: z.array(z.string()).optional()\n }).optional(),\n context_triggers: SkillContextTriggersSchema,\n execution: SkillExecutionSchema,\n related_tools: z.array(z.string()).optional(),\n scripts: z.array(z.string()).optional(),\n widgets: z.array(z.string()).optional()\n}).passthrough();\n/**\n * Schema for validating properties exported from properties.ts\n * This is a partial schema - allows any subset of SkillDefinition fields\n *\n * Note: Function properties like isEnabled cannot be validated by Zod for their signatures.\n * Zod will only check that they are functions, not their specific parameter/return types.\n * Use TypeScript for proper type checking of function signatures.\n */\nexport const SkillPropertiesSchema = SkillDefinitionSchema.partial().passthrough();\n/**\n * Build a SkillDefinition from frontmatter and markdown content.\n * This mirrors the logic in @vertesia/tools-sdk parseSkillFile function.\n *\n * Supports two frontmatter structures:\n *\n * 1. Flat structure (matches parseSkillFile in tools-sdk):\n * keywords: [...]\n * tools: [...]\n * language: python\n * packages: [...]\n *\n * 2. Nested structure (for more explicit YAML):\n * context_triggers:\n * keywords: [...]\n * tool_names: [...]\n * execution:\n * language: python\n * packages: [...]\n * related_tools: [...]\n *\n * @param frontmatter - Parsed frontmatter object\n * @param instructions - Markdown content (body of the file)\n * @param contentType - Content type ('md' or 'jst')\n * @param widgets - Discovered widget names\n * @param scripts - Discovered script names\n * @returns Skill definition object\n */\nfunction buildSkillDefinition(frontmatter, instructions, contentType, widgets, scripts) {\n const skill = {\n name: frontmatter.name,\n title: frontmatter.title,\n description: frontmatter.description,\n instructions,\n content_type: contentType,\n widgets: widgets.length > 0 ? widgets : undefined,\n scripts: scripts.length > 0 ? scripts : undefined,\n };\n // Build context triggers - support both flat and nested structure\n // Nested: context_triggers: { keywords: [...], tool_names: [...] }\n // Flat: keywords: [...], tools: [...]\n const contextTriggers = frontmatter.context_triggers;\n const hasNestedTriggers = contextTriggers && typeof contextTriggers === 'object';\n const hasFlatTriggers = frontmatter.keywords || frontmatter.tools || frontmatter.data_patterns;\n if (hasNestedTriggers || hasFlatTriggers) {\n skill.context_triggers = {\n keywords: hasNestedTriggers ? contextTriggers.keywords : frontmatter.keywords,\n tool_names: hasNestedTriggers ? contextTriggers.tool_names : frontmatter.tools,\n data_patterns: hasNestedTriggers ? contextTriggers.data_patterns : frontmatter.data_patterns,\n };\n }\n // Build execution config - support both flat and nested structure\n const execution = frontmatter.execution;\n const hasNestedExecution = execution && typeof execution === 'object';\n const hasFlatExecution = frontmatter.language;\n if (hasNestedExecution || hasFlatExecution) {\n skill.execution = {\n language: hasNestedExecution ? execution.language : frontmatter.language,\n packages: hasNestedExecution ? execution.packages : frontmatter.packages,\n system_packages: hasNestedExecution ? execution.system_packages : frontmatter.system_packages,\n };\n // Extract code template from instructions if present\n const codeBlockMatch = instructions.match(/```(?:python|javascript|typescript|js|ts|py)\\n([\\s\\S]*?)```/);\n if (codeBlockMatch) {\n skill.execution.template = codeBlockMatch[1].trim();\n }\n }\n // Related tools - support both direct field and from tools field\n if (frontmatter.related_tools) {\n skill.related_tools = frontmatter.related_tools;\n }\n else if (frontmatter.tools && !hasNestedTriggers) {\n // If tools is not part of context_triggers, use it as related_tools\n skill.related_tools = frontmatter.tools;\n }\n // Input schema from frontmatter\n if (frontmatter.input_schema) {\n skill.input_schema = frontmatter.input_schema;\n }\n return skill;\n}\n/**\n * Skill transformer preset\n * Transforms markdown files with ?skill suffix OR SKILL.md files into skill definition objects\n *\n * Matches:\n * - Files with ?skill suffix: ./my-skill.md?skill\n * - SKILL.md files: ./my-skill/SKILL.md\n *\n * Runtime Properties:\n * - Supports properties.ts file in skill directory for runtime properties (functions, overrides)\n * - Properties from properties.ts override those from frontmatter\n * - See README.md for detailed usage examples\n *\n * @example\n * ```typescript\n * import skill1 from './my-skill.md?skill';\n * import skill2 from './my-skill/SKILL.md';\n * // Both are SkillDefinition objects\n * ```\n */\nexport const skillTransformer = {\n pattern: /(\\.md\\?skill$|\\/SKILL\\.md$)/,\n schema: SkillDefinitionSchema,\n transform: (content, filePath) => {\n const { frontmatter, content: markdown } = parseFrontmatter(content);\n // Validate frontmatter first to catch unknown properties\n const frontmatterValidation = SkillFrontmatterSchema.safeParse(frontmatter);\n if (!frontmatterValidation.success) {\n const errors = frontmatterValidation.error.errors\n .map((err) => {\n const pathStr = err.path.length > 0 ? err.path.join('.') : 'frontmatter';\n return ` - ${pathStr}: ${err.message}`;\n })\n .join('\\n');\n throw new Error(`Invalid frontmatter in ${filePath}:\\n${errors}`);\n }\n // Determine content type from frontmatter or file extension\n const content_type = frontmatter.content_type || 'md';\n // Discover assets (scripts and widgets) in the skill directory\n const assets = discoverSkillAssets(filePath);\n // Build skill definition using the same logic as parseSkillFile in tools-sdk\n const skillData = buildSkillDefinition(frontmatter, markdown, content_type, assets.widgets, assets.scripts);\n // Check if properties.ts exists in the skill directory\n const skillDir = path.dirname(filePath);\n const propertiesPath = path.join(skillDir, 'properties.ts');\n const hasProperties = existsSync(propertiesPath);\n // If properties.ts exists, generate custom code with import and merge\n // Rollup will handle transpiling properties.ts to properties.js\n if (hasProperties) {\n const skillDataJson = JSON.stringify(skillData, null, 2);\n const code = `import properties from './properties.js';\n\n// Runtime validation for function properties\nif ('isEnabled' in properties && typeof properties.isEnabled !== 'function') {\n throw new Error('properties.isEnabled must be a function, got ' + typeof properties.isEnabled);\n}\n\nconst skill = ${skillDataJson};\n\nexport default { ...skill, ...properties };\n`;\n return {\n data: skillData,\n assets: assets.assetFiles,\n widgets: assets.widgetMetadata,\n code\n };\n }\n return {\n data: skillData,\n assets: assets.assetFiles,\n widgets: assets.widgetMetadata\n };\n }\n};\n//# sourceMappingURL=skill.js.map","/**\n * Skill collection transformer for directory-based skill imports\n * Scans a directory for subdirectories containing SKILL.md files\n */\nimport { readdirSync, statSync, existsSync } from 'node:fs';\nimport path from 'node:path';\n/**\n * Skill collection transformer preset\n * Transforms directory imports with ?skills suffix into an array of skill imports\n *\n * Matches:\n * - ./all?skills (recommended - generates all.js in the directory)\n * - ./_skills?skills (generates _skills.js in the directory)\n * - Any path ending with a filename and ?skills\n *\n * NOTE: A filename before ?skills is REQUIRED to avoid naming conflicts.\n * The filename becomes the output module name.\n *\n * @example\n * ```typescript\n * import skills from './all?skills';\n * // Scans current directory for subdirectories with SKILL.md\n * // Generates all.js containing array of all skills\n * ```\n */\nexport const skillCollectionTransformer = {\n pattern: /\\/[^/?]+\\?skills$/,\n virtual: true, // Indicates this doesn't transform a real file\n transform: (_content, filePath) => {\n // Remove ?skills suffix and the filename to get directory path\n // Example: /path/code/all?skills -> /path/code/all -> /path/code/\n const pathWithoutQuery = filePath.replace(/\\?skills$/, '');\n const dirPath = path.dirname(pathWithoutQuery);\n if (!existsSync(dirPath)) {\n throw new Error(`Directory not found: ${dirPath}`);\n }\n if (!statSync(dirPath).isDirectory()) {\n throw new Error(`Not a directory: ${dirPath}`);\n }\n // Scan for subdirectories containing SKILL.md\n const entries = readdirSync(dirPath);\n const imports = [];\n const names = [];\n for (const entry of entries) {\n const entryPath = path.join(dirPath, entry);\n try {\n if (statSync(entryPath).isDirectory()) {\n const skillFile = path.join(entryPath, 'SKILL.md');\n if (existsSync(skillFile)) {\n // Generate unique identifier from directory name\n const identifier = `Skill_${entry.replace(/[^a-zA-Z0-9_]/g, '_')}`;\n imports.push(`import ${identifier} from './${entry}/SKILL.md';`);\n names.push(identifier);\n }\n }\n }\n catch (err) {\n // Skip entries that can't be read\n continue;\n }\n }\n if (names.length === 0) {\n console.warn(`No SKILL.md files found in subdirectories of ${dirPath}`);\n }\n // Generate code that imports all skills and exports as array\n const code = [\n ...imports,\n '',\n `export default [${names.join(', ')}];`\n ].join('\\n');\n return {\n data: null, // Not used when custom code is provided\n code\n };\n }\n};\n//# sourceMappingURL=skill-collection.js.map","/**\n * Utilities for discovering asset files in template directories\n */\nimport { readdirSync, statSync } from 'node:fs';\nimport path from 'node:path';\n/**\n * Files to exclude from template asset discovery\n * (source files and the template definition itself)\n */\nconst EXCLUDED_PATTERNS = [\n /^TEMPLATE\\.md$/,\n /\\.ts$/,\n /\\.js$/,\n];\nfunction isExcluded(fileName) {\n return EXCLUDED_PATTERNS.some(p => p.test(fileName));\n}\n/**\n * Discover asset files in a template directory.\n * All files except TEMPLATE.md, *.ts, and *.js are considered assets.\n *\n * @param templateFilePath - Absolute path to the TEMPLATE.md file\n * @param templatePath - The template path segment (e.g., \"examples/report\")\n * @returns Discovered assets and metadata\n */\nexport function discoverTemplateAssets(templateFilePath, templatePath) {\n const templateDir = path.dirname(templateFilePath);\n const fileNames = [];\n const assetFiles = [];\n let files;\n try {\n files = readdirSync(templateDir).filter(file => {\n try {\n return statSync(path.join(templateDir, file)).isFile();\n }\n catch {\n return false;\n }\n });\n }\n catch {\n files = [];\n }\n for (const file of files) {\n if (isExcluded(file)) {\n continue;\n }\n fileNames.push(file);\n assetFiles.push({\n sourcePath: path.join(templateDir, file),\n destPath: path.join('templates', templatePath, file),\n type: 'template',\n });\n }\n return { fileNames, assetFiles };\n}\n//# sourceMappingURL=template-asset-discovery.js.map","/**\n * Template transformer preset for markdown files with frontmatter\n */\nimport path from 'node:path';\nimport { z } from 'zod';\nimport { parseFrontmatter } from '../parsers/frontmatter.js';\nimport { discoverTemplateAssets } from '../utils/template-asset-discovery.js';\n/**\n * Zod schema for template frontmatter validation.\n * Only includes fields authored by the user.\n * The name and id are inferred from the directory structure.\n */\nconst TemplateFrontmatterSchema = z.object({\n title: z.string().optional(),\n description: z.string().min(1, 'Template description is required'),\n tags: z.array(z.string()).optional(),\n type: z.enum(['presentation', 'document']),\n}).strict();\n/**\n * MUST be kept in sync with @vertesia/tools-sdk RenderingTemplateDefinition\n * Zod schema for template definition\n */\nexport const RenderingTemplateDefinitionSchema = z.object({\n id: z.string().min(1, 'Template id is required'),\n name: z.string().min(1, 'Template name is required'),\n title: z.string().optional(),\n description: z.string().min(1, 'Template description is required'),\n instructions: z.string(),\n tags: z.array(z.string()).optional(),\n type: z.enum(['presentation', 'document']),\n assets: z.array(z.string()),\n}).passthrough();\n/**\n * Derive the template path segments from the file path.\n *\n * Example: .../templates/examples/report/TEMPLATE.md\n * → category: \"examples\", name: \"report\", relative: \"examples/report\"\n */\nfunction deriveTemplatePathInfo(filePath) {\n const templateDir = path.dirname(filePath);\n const templateName = path.basename(templateDir);\n const collectionDir = path.dirname(templateDir);\n const category = path.basename(collectionDir);\n return { category, templateName, relative: `${category}/${templateName}` };\n}\n/**\n * Template transformer preset\n * Transforms markdown files with ?template suffix OR TEMPLATE.md files into template definition objects\n *\n * Matches:\n * - Files with ?template suffix: ./my-template.md?template\n * - TEMPLATE.md files: ./my-template/TEMPLATE.md\n *\n * @example\n * ```typescript\n * import template1 from './my-template.md?template';\n * import template2 from './my-template/TEMPLATE.md';\n * // Both are RenderingTemplateDefinition objects\n * ```\n */\nexport const templateTransformer = {\n pattern: /(\\.md\\?template$|\\/TEMPLATE\\.md$)/,\n schema: RenderingTemplateDefinitionSchema,\n transform: (content, filePath) => {\n const { frontmatter, content: markdown } = parseFrontmatter(content);\n // Validate frontmatter\n const frontmatterValidation = TemplateFrontmatterSchema.safeParse(frontmatter);\n if (!frontmatterValidation.success) {\n const errors = frontmatterValidation.error.errors\n .map((err) => {\n const pathStr = err.path.length > 0 ? err.path.join('.') : 'frontmatter';\n return ` - ${pathStr}: ${err.message}`;\n })\n .join('\\n');\n throw new Error(`Invalid frontmatter in ${filePath}:\\n${errors}`);\n }\n // Derive template path from directory structure\n const { category, templateName, relative: templatePath } = deriveTemplatePathInfo(filePath);\n // Discover asset files in the template directory\n const assets = discoverTemplateAssets(filePath, templatePath);\n // Build template definition\n // Assets use absolute paths for direct server-side resolution\n const templateData = {\n id: `${category}:${templateName}`,\n name: templateName,\n title: frontmatter.title,\n description: frontmatter.description,\n instructions: markdown,\n tags: frontmatter.tags,\n type: frontmatter.type,\n assets: assets.fileNames.map(f => `/templates/${templatePath}/${f}`),\n };\n return {\n data: templateData,\n assets: assets.assetFiles,\n };\n }\n};\n//# sourceMappingURL=template.js.map","/**\n * Template collection transformer for directory-based template imports\n * Scans a directory for subdirectories containing TEMPLATE.md files\n */\nimport { readdirSync, statSync, existsSync } from 'node:fs';\nimport path from 'node:path';\n/**\n * Template collection transformer preset\n * Transforms directory imports with ?templates suffix into an array of template imports\n *\n * Matches:\n * - ./all?templates (recommended - generates all.js in the directory)\n * - Any path ending with a filename and ?templates\n *\n * NOTE: A filename before ?templates is REQUIRED to avoid naming conflicts.\n * The filename becomes the output module name.\n *\n * @example\n * ```typescript\n * import templates from './all?templates';\n * // Scans current directory for subdirectories with TEMPLATE.md\n * // Generates all.js containing array of all templates\n * ```\n */\nexport const templateCollectionTransformer = {\n pattern: /\\/[^/?]+\\?templates$/,\n virtual: true,\n transform: (_content, filePath) => {\n // Remove ?templates suffix and the filename to get directory path\n const pathWithoutQuery = filePath.replace(/\\?templates$/, '');\n const dirPath = path.dirname(pathWithoutQuery);\n if (!existsSync(dirPath)) {\n throw new Error(`Directory not found: ${dirPath}`);\n }\n if (!statSync(dirPath).isDirectory()) {\n throw new Error(`Not a directory: ${dirPath}`);\n }\n // Scan for subdirectories containing TEMPLATE.md\n const entries = readdirSync(dirPath);\n const imports = [];\n const names = [];\n for (const entry of entries) {\n const entryPath = path.join(dirPath, entry);\n try {\n if (statSync(entryPath).isDirectory()) {\n const templateFile = path.join(entryPath, 'TEMPLATE.md');\n if (existsSync(templateFile)) {\n const identifier = `Template_${entry.replace(/[^a-zA-Z0-9_]/g, '_')}`;\n imports.push(`import ${identifier} from './${entry}/TEMPLATE.md';`);\n names.push(identifier);\n }\n }\n }\n catch (_err) {\n // Skip entries that can't be read\n continue;\n }\n }\n if (names.length === 0) {\n console.warn(`No TEMPLATE.md files found in subdirectories of ${dirPath}`);\n }\n // Generate code that imports all templates and exports as array\n const code = [\n ...imports,\n '',\n `export default [${names.join(', ')}];`\n ].join('\\n');\n return {\n data: null,\n code\n };\n }\n};\n//# sourceMappingURL=template-collection.js.map","/**\n * Raw transformer preset for importing file content as strings\n */\n/**\n * Raw transformer preset\n * Transforms any file with ?raw suffix into a string export\n *\n * @example\n * ```typescript\n * import template from './template.html?raw';\n * // template is a string containing the file content\n * ```\n */\nexport const rawTransformer = {\n pattern: /\\?raw$/,\n transform: (content) => {\n return {\n data: content\n };\n }\n};\n//# sourceMappingURL=raw.js.map","/**\n * @module access-control\n * @description\n * Access control interfaces\n */\nexport var Permission;\n(function (Permission) {\n Permission[\"int_read\"] = \"interaction:read\";\n Permission[\"int_write\"] = \"interaction:write\";\n Permission[\"int_delete\"] = \"interaction:delete\";\n Permission[\"int_execute\"] = \"interaction:execute\";\n Permission[\"run_read\"] = \"run:read\";\n Permission[\"run_write\"] = \"run:write\";\n Permission[\"env_admin\"] = \"environment:admin\";\n Permission[\"project_admin\"] = \"project:admin\";\n Permission[\"project_integration_read\"] = \"project:integration_read\";\n Permission[\"project_settings_write\"] = \"project:settings_write\";\n Permission[\"api_key_create\"] = \"api_key:create\";\n Permission[\"api_key_read\"] = \"api_key:read\";\n Permission[\"api_key_update\"] = \"api_key:update\";\n Permission[\"api_key_delete\"] = \"api_key:delete\";\n Permission[\"account_read\"] = \"account:read\";\n Permission[\"account_write\"] = \"account:write\";\n Permission[\"account_admin\"] = \"account:admin\";\n Permission[\"manage_billing\"] = \"account:billing\";\n Permission[\"account_member\"] = \"account:member\";\n Permission[\"content_read\"] = \"content:read\";\n Permission[\"content_write\"] = \"content:write\";\n Permission[\"content_delete\"] = \"content:delete\";\n Permission[\"content_admin\"] = \"content:admin\";\n Permission[\"content_superadmin\"] = \"content:superadmin\";\n Permission[\"workflow_run\"] = \"workflow:run\";\n Permission[\"workflow_admin\"] = \"workflow:admin\";\n Permission[\"workflow_superadmin\"] = \"workflow:superadmin\";\n Permission[\"iam_impersonate\"] = \"iam:impersonate\";\n /** whether the user has access to Sutdio App. */\n Permission[\"studio_access\"] = \"studio:access\";\n})(Permission || (Permission = {}));\nexport var AccessControlResourceType;\n(function (AccessControlResourceType) {\n AccessControlResourceType[\"project\"] = \"project\";\n AccessControlResourceType[\"environment\"] = \"environment\";\n AccessControlResourceType[\"account\"] = \"account\";\n AccessControlResourceType[\"interaction\"] = \"interaction\";\n AccessControlResourceType[\"app\"] = \"application\";\n})(AccessControlResourceType || (AccessControlResourceType = {}));\nexport var AccessControlPrincipalType;\n(function (AccessControlPrincipalType) {\n AccessControlPrincipalType[\"user\"] = \"user\";\n AccessControlPrincipalType[\"group\"] = \"group\";\n AccessControlPrincipalType[\"apikey\"] = \"apikey\";\n})(AccessControlPrincipalType || (AccessControlPrincipalType = {}));\n//# sourceMappingURL=access-control.js.map","export var ApiKeyTypes;\n(function (ApiKeyTypes) {\n ApiKeyTypes[\"secret\"] = \"sk\";\n})(ApiKeyTypes || (ApiKeyTypes = {}));\nexport var PrincipalType;\n(function (PrincipalType) {\n PrincipalType[\"User\"] = \"user\";\n PrincipalType[\"Group\"] = \"group\";\n PrincipalType[\"ApiKey\"] = \"apikey\";\n PrincipalType[\"ServiceAccount\"] = \"service_account\";\n PrincipalType[\"Agent\"] = \"agent\";\n PrincipalType[\"Schedule\"] = \"schedule\";\n})(PrincipalType || (PrincipalType = {}));\n//# sourceMappingURL=apikey.js.map","export const InteractionRefPopulate = \"id name endpoint parent description status version visibility tags agent_runner_options updated_at prompts\";\nexport const InteractionRefWithSchemaPopulate = `${InteractionRefPopulate} result_schema`;\nexport var InteractionStatus;\n(function (InteractionStatus) {\n InteractionStatus[\"draft\"] = \"draft\";\n InteractionStatus[\"published\"] = \"published\";\n InteractionStatus[\"archived\"] = \"archived\";\n})(InteractionStatus || (InteractionStatus = {}));\nexport var ExecutionRunStatus;\n(function (ExecutionRunStatus) {\n ExecutionRunStatus[\"created\"] = \"created\";\n ExecutionRunStatus[\"processing\"] = \"processing\";\n ExecutionRunStatus[\"completed\"] = \"completed\";\n ExecutionRunStatus[\"failed\"] = \"failed\";\n})(ExecutionRunStatus || (ExecutionRunStatus = {}));\nexport var RunDataStorageLevel;\n(function (RunDataStorageLevel) {\n RunDataStorageLevel[\"STANDARD\"] = \"STANDARD\";\n RunDataStorageLevel[\"RESTRICTED\"] = \"RESTRICTED\";\n RunDataStorageLevel[\"DEBUG\"] = \"DEBUG\";\n})(RunDataStorageLevel || (RunDataStorageLevel = {}));\nexport var RunDataStorageDescription;\n(function (RunDataStorageDescription) {\n RunDataStorageDescription[\"STANDARD\"] = \"Run data is stored for both the model inputs and output.\";\n RunDataStorageDescription[\"RESTRICTED\"] = \"No run data is stored for the model inputs \\u2014 only the model output.\";\n RunDataStorageDescription[\"DEBUG\"] = \"Run data is stored for the model inputs and output, schema, and final prompt.\";\n})(RunDataStorageDescription || (RunDataStorageDescription = {}));\nexport const RunDataStorageOptions = {\n [RunDataStorageLevel.STANDARD]: RunDataStorageDescription.STANDARD,\n [RunDataStorageLevel.RESTRICTED]: RunDataStorageDescription.RESTRICTED,\n [RunDataStorageLevel.DEBUG]: RunDataStorageDescription.DEBUG,\n};\n/**\n * Defines the scope for agent search operations.\n */\nexport var AgentSearchScope;\n(function (AgentSearchScope) {\n /**\n * Search is scoped to a specific collection.\n */\n AgentSearchScope[\"Collection\"] = \"collection\";\n})(AgentSearchScope || (AgentSearchScope = {}));\nexport { isEmailChannel, isInteractiveChannel, } from \"./email.js\";\n// ================= end async execution payloads ====================\nexport var RunSourceTypes;\n(function (RunSourceTypes) {\n RunSourceTypes[\"api\"] = \"api\";\n RunSourceTypes[\"cli\"] = \"cli\";\n RunSourceTypes[\"ui\"] = \"ui\";\n RunSourceTypes[\"webhook\"] = \"webhook\";\n RunSourceTypes[\"test\"] = \"test-data\";\n RunSourceTypes[\"system\"] = \"system\";\n})(RunSourceTypes || (RunSourceTypes = {}));\nexport const ExecutionRunRefSelect = \"-result -parameters -result_schema -prompt\";\nexport var ConfigModes;\n(function (ConfigModes) {\n ConfigModes[\"RUN_AND_INTERACTION_CONFIG\"] = \"RUN_AND_INTERACTION_CONFIG\";\n ConfigModes[\"RUN_CONFIG_ONLY\"] = \"RUN_CONFIG_ONLY\";\n ConfigModes[\"INTERACTION_CONFIG_ONLY\"] = \"INTERACTION_CONFIG_ONLY\";\n})(ConfigModes || (ConfigModes = {}));\nexport var ConfigModesDescription;\n(function (ConfigModesDescription) {\n ConfigModesDescription[\"RUN_AND_INTERACTION_CONFIG\"] = \"This run configuration is used. Undefined options are filled with interaction configuration.\";\n ConfigModesDescription[\"RUN_CONFIG_ONLY\"] = \"Only this run configuration is used. Undefined options remain undefined.\";\n ConfigModesDescription[\"INTERACTION_CONFIG_ONLY\"] = \"Only interaction configuration is used.\";\n})(ConfigModesDescription || (ConfigModesDescription = {}));\nexport const ConfigModesOptions = {\n [ConfigModes.RUN_AND_INTERACTION_CONFIG]: ConfigModesDescription.RUN_AND_INTERACTION_CONFIG,\n [ConfigModes.RUN_CONFIG_ONLY]: ConfigModesDescription.RUN_CONFIG_ONLY,\n [ConfigModes.INTERACTION_CONFIG_ONLY]: ConfigModesDescription.INTERACTION_CONFIG_ONLY,\n};\n/**\n * Source of the resolved model configuration\n */\nexport var ModelSource;\n(function (ModelSource) {\n /** Model was explicitly provided in the execution config */\n ModelSource[\"config\"] = \"config\";\n /** Model comes from the interaction definition */\n ModelSource[\"interaction\"] = \"interaction\";\n /** Model comes from environment's default_model */\n ModelSource[\"environmentDefault\"] = \"environmentDefault\";\n /** Model comes from project system interaction defaults */\n ModelSource[\"projectSystemDefault\"] = \"projectSystemDefault\";\n /** Model comes from project base defaults */\n ModelSource[\"projectBaseDefault\"] = \"projectBaseDefault\";\n /** Model comes from project modality-specific defaults */\n ModelSource[\"projectModalityDefault\"] = \"projectModalityDefault\";\n /** Model comes from legacy project defaults */\n ModelSource[\"projectLegacyDefault\"] = \"projectLegacyDefault\";\n})(ModelSource || (ModelSource = {}));\n//# sourceMappingURL=interaction.js.map","/**\n * Data Platform Types\n *\n * Types for managing versioned analytical data stores with DuckDB + GCS storage.\n * Supports AI-manageable schemas and multi-table atomic operations.\n */\n// ============================================================================\n// Column Types\n// ============================================================================\n/**\n * Supported column data types for DuckDB tables.\n */\nexport var DataColumnType;\n(function (DataColumnType) {\n DataColumnType[\"STRING\"] = \"STRING\";\n DataColumnType[\"INTEGER\"] = \"INTEGER\";\n DataColumnType[\"BIGINT\"] = \"BIGINT\";\n DataColumnType[\"FLOAT\"] = \"FLOAT\";\n DataColumnType[\"DOUBLE\"] = \"DOUBLE\";\n DataColumnType[\"DECIMAL\"] = \"DECIMAL\";\n DataColumnType[\"BOOLEAN\"] = \"BOOLEAN\";\n DataColumnType[\"DATE\"] = \"DATE\";\n DataColumnType[\"TIMESTAMP\"] = \"TIMESTAMP\";\n DataColumnType[\"JSON\"] = \"JSON\";\n})(DataColumnType || (DataColumnType = {}));\n/**\n * Semantic types that provide AI agents with context about column meaning.\n */\nexport var SemanticColumnType;\n(function (SemanticColumnType) {\n SemanticColumnType[\"EMAIL\"] = \"email\";\n SemanticColumnType[\"PHONE\"] = \"phone\";\n SemanticColumnType[\"URL\"] = \"url\";\n SemanticColumnType[\"CURRENCY\"] = \"currency\";\n SemanticColumnType[\"PERCENTAGE\"] = \"percentage\";\n SemanticColumnType[\"PERSON_NAME\"] = \"person_name\";\n SemanticColumnType[\"ADDRESS\"] = \"address\";\n SemanticColumnType[\"COUNTRY\"] = \"country\";\n SemanticColumnType[\"DATE_ISO\"] = \"date_iso\";\n SemanticColumnType[\"IDENTIFIER\"] = \"identifier\";\n})(SemanticColumnType || (SemanticColumnType = {}));\n/**\n * Mapping from DataColumnType to DuckDB SQL types.\n */\nexport const DATA_COLUMN_TYPE_TO_DUCKDB = {\n [DataColumnType.STRING]: 'VARCHAR',\n [DataColumnType.INTEGER]: 'INTEGER',\n [DataColumnType.BIGINT]: 'BIGINT',\n [DataColumnType.FLOAT]: 'FLOAT',\n [DataColumnType.DOUBLE]: 'DOUBLE',\n [DataColumnType.DECIMAL]: 'DECIMAL(18,4)',\n [DataColumnType.BOOLEAN]: 'BOOLEAN',\n [DataColumnType.DATE]: 'DATE',\n [DataColumnType.TIMESTAMP]: 'TIMESTAMP',\n [DataColumnType.JSON]: 'JSON',\n};\n// ============================================================================\n// Data Store Types\n// ============================================================================\n/**\n * Data store lifecycle status.\n */\nexport var DataStoreStatus;\n(function (DataStoreStatus) {\n /** Store is being created */\n DataStoreStatus[\"CREATING\"] = \"creating\";\n /** Store is active and usable */\n DataStoreStatus[\"ACTIVE\"] = \"active\";\n /** Store encountered an error */\n DataStoreStatus[\"ERROR\"] = \"error\";\n /** Store has been archived (soft deleted) */\n DataStoreStatus[\"ARCHIVED\"] = \"archived\";\n})(DataStoreStatus || (DataStoreStatus = {}));\n// ============================================================================\n// Import Types\n// ============================================================================\n/**\n * Import job status.\n */\nexport var ImportStatus;\n(function (ImportStatus) {\n /** Job is queued */\n ImportStatus[\"PENDING\"] = \"pending\";\n /** Job is running */\n ImportStatus[\"PROCESSING\"] = \"processing\";\n /** Job completed successfully */\n ImportStatus[\"COMPLETED\"] = \"completed\";\n /** Job failed */\n ImportStatus[\"FAILED\"] = \"failed\";\n /** Job was rolled back */\n ImportStatus[\"ROLLED_BACK\"] = \"rolled_back\";\n})(ImportStatus || (ImportStatus = {}));\n/**\n * Default retention configuration: 30 days, snapshots exempt.\n */\nexport const DEFAULT_RETENTION_CONFIG = {\n retention_days: 30,\n snapshots_exempt: true,\n};\n// ============================================================================\n// Dashboard Types\n// ============================================================================\n/**\n * Dashboard lifecycle status.\n */\nexport var DashboardStatus;\n(function (DashboardStatus) {\n /** Dashboard is active and usable */\n DashboardStatus[\"ACTIVE\"] = \"active\";\n /** Dashboard has been archived (soft deleted) */\n DashboardStatus[\"ARCHIVED\"] = \"archived\";\n})(DashboardStatus || (DashboardStatus = {}));\n/**\n * Default layout configuration for dashboards.\n *\n * @deprecated Use combined Vega-Lite spec with vconcat/hconcat instead.\n */\nexport const DEFAULT_DASHBOARD_LAYOUT = {\n columns: 2,\n cellWidth: 600,\n cellHeight: 400,\n padding: 20,\n};\n//# sourceMappingURL=data-platform.js.map","// ============== Provider details ===============\nexport var Providers;\n(function (Providers) {\n Providers[\"openai\"] = \"openai\";\n Providers[\"openai_compatible\"] = \"openai_compatible\";\n Providers[\"azure_openai\"] = \"azure_openai\";\n Providers[\"azure_foundry\"] = \"azure_foundry\";\n Providers[\"huggingface_ie\"] = \"huggingface_ie\";\n Providers[\"replicate\"] = \"replicate\";\n Providers[\"bedrock\"] = \"bedrock\";\n Providers[\"vertexai\"] = \"vertexai\";\n Providers[\"togetherai\"] = \"togetherai\";\n Providers[\"mistralai\"] = \"mistralai\";\n Providers[\"groq\"] = \"groq\";\n Providers[\"watsonx\"] = \"watsonx\";\n Providers[\"xai\"] = \"xai\";\n})(Providers || (Providers = {}));\nexport const ProviderList = {\n openai: {\n id: Providers.openai,\n name: \"OpenAI\",\n requiresApiKey: true,\n requiresEndpointUrl: false,\n supportSearch: false,\n },\n azure_openai: {\n id: Providers.azure_openai,\n name: \"Azure OpenAI\",\n requiresApiKey: false,\n requiresEndpointUrl: true,\n supportSearch: false,\n },\n azure_foundry: {\n id: Providers.azure_foundry,\n name: \"Azure Foundry\",\n requiresApiKey: true,\n requiresEndpointUrl: true,\n supportSearch: false,\n },\n huggingface_ie: {\n id: Providers.huggingface_ie,\n name: \"HuggingFace Inference Endpoint\",\n requiresApiKey: true,\n requiresEndpointUrl: true,\n },\n replicate: {\n id: Providers.replicate,\n name: \"Replicate\",\n requiresApiKey: true,\n requiresEndpointUrl: false,\n supportSearch: true,\n },\n bedrock: {\n id: Providers.bedrock,\n name: \"AWS Bedrock\",\n requiresApiKey: false,\n requiresEndpointUrl: false,\n endpointPlaceholder: \"region name (eg. us-east-1)\",\n supportSearch: false,\n },\n vertexai: {\n id: Providers.vertexai,\n name: \"Google Vertex AI\",\n requiresApiKey: false,\n requiresEndpointUrl: false,\n supportSearch: false,\n },\n togetherai: {\n id: Providers.togetherai,\n name: \"Together AI\",\n requiresApiKey: false,\n requiresEndpointUrl: false,\n supportSearch: false,\n },\n mistralai: {\n id: Providers.mistralai,\n name: \"Mistral AI\",\n requiresApiKey: false,\n requiresEndpointUrl: false,\n supportSearch: false,\n },\n groq: {\n id: Providers.groq,\n name: \"Groq Cloud\",\n requiresApiKey: false,\n requiresEndpointUrl: false,\n supportSearch: false,\n },\n watsonx: {\n id: Providers.watsonx,\n name: \"IBM WatsonX\",\n requiresApiKey: true,\n requiresEndpointUrl: true,\n supportSearch: false\n },\n xai: {\n id: Providers.xai,\n name: \"xAI (Grok)\",\n requiresApiKey: true,\n requiresEndpointUrl: false,\n supportSearch: false\n },\n openai_compatible: {\n id: Providers.openai_compatible,\n name: \"OpenAI Compatible\",\n requiresApiKey: true,\n requiresEndpointUrl: true,\n endpointPlaceholder: \"https://api.example.com/v1\",\n supportSearch: false\n },\n};\n/**\n * Standardized error class for Llumiverse driver errors.\n *\n * Normalizes errors from different LLM providers (OpenAI, Anthropic, Bedrock, VertexAI, etc.)\n * into a consistent format. The primary value is the `retryable` flag, which enables upstream\n * consumers to implement smart retry logic.\n *\n * @example\n * ```typescript\n * try {\n * const result = await driver.execute(segments, options);\n * } catch (error) {\n * if (LlumiverseError.isLlumiverseError(error)) {\n * console.log(`Provider: ${error.context.provider}`);\n * console.log(`Model: ${error.context.model}`);\n * console.log(`Retryable: ${error.retryable}`);\n *\n * if (error.retryable) {\n * // Implement retry logic with exponential backoff\n * await retryWithBackoff(() => driver.execute(segments, options));\n * } else {\n * // Handle non-retryable error (e.g., invalid API key, malformed request)\n * logError(error);\n * }\n * }\n * throw error;\n * }\n * ```\n */\nexport class LlumiverseError extends Error {\n /**\n * HTTP status code (e.g., 429, 500) if available.\n * Undefined if the error doesn't have a numeric status code.\n */\n code;\n /**\n * Provider-specific error name/type (e.g., \"ThrottlingException\", \"ValidationException\").\n * Optional - used to preserve the semantic error type from the provider SDK.\n */\n name;\n /**\n * Whether this error is retryable.\n * - True: Definitely retryable (rate limits, timeouts, server errors)\n * - False: Definitely not retryable (auth failures, invalid requests, malformed schemas)\n * - Undefined: Unknown retryability - allows consumers to decide default behavior\n *\n * When undefined, consumers can choose their retry strategy:\n * - Conservative: Don't retry unknown errors (avoid spam)\n * - Resilient: Retry unknown errors (prioritize success)\n */\n retryable;\n /**\n * Context about where and how the error occurred.\n * Includes provider, model, operation type.\n */\n context;\n /**\n * The original error from the provider SDK.\n * Preserved for debugging and detailed error inspection.\n */\n originalError;\n constructor(message, retryable, context, originalError, code, name) {\n super(message);\n this.name = name || 'LlumiverseError';\n this.code = code;\n this.retryable = retryable;\n this.context = context;\n this.originalError = originalError;\n // Preserve stack trace from original error if available\n if (originalError instanceof Error && originalError.stack) {\n this.stack = originalError.stack;\n }\n }\n /**\n * Serialize the error to JSON for logging or transmission.\n * Includes all error properties except the original error object itself.\n */\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n code: this.code,\n retryable: this.retryable,\n context: this.context,\n stack: this.stack,\n // Include original error message if available\n originalErrorMessage: this.originalError instanceof Error\n ? this.originalError.message\n : String(this.originalError),\n };\n }\n /**\n * Type guard to check if an error is a LlumiverseError.\n * Useful for conditional error handling.\n *\n * @param error - The error to check\n * @returns True if the error is a LlumiverseError\n */\n static isLlumiverseError(error) {\n return error instanceof LlumiverseError;\n }\n}\n//Common names to share between different models\nexport var SharedOptions;\n(function (SharedOptions) {\n //Text\n SharedOptions[\"max_tokens\"] = \"max_tokens\";\n SharedOptions[\"temperature\"] = \"temperature\";\n SharedOptions[\"top_p\"] = \"top_p\";\n SharedOptions[\"top_k\"] = \"top_k\";\n SharedOptions[\"presence_penalty\"] = \"presence_penalty\";\n SharedOptions[\"frequency_penalty\"] = \"frequency_penalty\";\n SharedOptions[\"stop_sequence\"] = \"stop_sequence\";\n //Image\n SharedOptions[\"seed\"] = \"seed\";\n SharedOptions[\"number_of_images\"] = \"number_of_images\";\n})(SharedOptions || (SharedOptions = {}));\nexport var OptionType;\n(function (OptionType) {\n OptionType[\"numeric\"] = \"numeric\";\n OptionType[\"enum\"] = \"enum\";\n OptionType[\"boolean\"] = \"boolean\";\n OptionType[\"string_list\"] = \"string_list\";\n})(OptionType || (OptionType = {}));\n// ============== Prompts ===============\nexport var PromptRole;\n(function (PromptRole) {\n PromptRole[\"safety\"] = \"safety\";\n PromptRole[\"system\"] = \"system\";\n PromptRole[\"user\"] = \"user\";\n PromptRole[\"assistant\"] = \"assistant\";\n PromptRole[\"negative\"] = \"negative\";\n PromptRole[\"mask\"] = \"mask\";\n /**\n * Used to send the response of a tool\n */\n PromptRole[\"tool\"] = \"tool\";\n})(PromptRole || (PromptRole = {}));\n/**\n * @deprecated This is deprecated. Use CompletionResult.type information instead.\n */\nexport var Modalities;\n(function (Modalities) {\n Modalities[\"text\"] = \"text\";\n Modalities[\"image\"] = \"image\";\n})(Modalities || (Modalities = {}));\nexport var AIModelStatus;\n(function (AIModelStatus) {\n AIModelStatus[\"Available\"] = \"available\";\n AIModelStatus[\"Pending\"] = \"pending\";\n AIModelStatus[\"Stopped\"] = \"stopped\";\n AIModelStatus[\"Unavailable\"] = \"unavailable\";\n AIModelStatus[\"Unknown\"] = \"unknown\";\n AIModelStatus[\"Legacy\"] = \"legacy\";\n})(AIModelStatus || (AIModelStatus = {}));\nexport var ModelType;\n(function (ModelType) {\n ModelType[\"Classifier\"] = \"classifier\";\n ModelType[\"Regressor\"] = \"regressor\";\n ModelType[\"Clustering\"] = \"clustering\";\n ModelType[\"AnomalyDetection\"] = \"anomaly-detection\";\n ModelType[\"TimeSeries\"] = \"time-series\";\n ModelType[\"Text\"] = \"text\";\n ModelType[\"Image\"] = \"image\";\n ModelType[\"Audio\"] = \"audio\";\n ModelType[\"Video\"] = \"video\";\n ModelType[\"Embedding\"] = \"embedding\";\n ModelType[\"Chat\"] = \"chat\";\n ModelType[\"Code\"] = \"code\";\n ModelType[\"NLP\"] = \"nlp\";\n ModelType[\"MultiModal\"] = \"multi-modal\";\n ModelType[\"Test\"] = \"test\";\n ModelType[\"Other\"] = \"other\";\n ModelType[\"Unknown\"] = \"unknown\";\n})(ModelType || (ModelType = {}));\nexport var TrainingJobStatus;\n(function (TrainingJobStatus) {\n TrainingJobStatus[\"running\"] = \"running\";\n TrainingJobStatus[\"succeeded\"] = \"succeeded\";\n TrainingJobStatus[\"failed\"] = \"failed\";\n TrainingJobStatus[\"cancelled\"] = \"cancelled\";\n})(TrainingJobStatus || (TrainingJobStatus = {}));\n//# sourceMappingURL=types.js.map","import { OptionType, SharedOptions } from \"../types.js\";\nexport const textOptionsFallback = {\n _option_id: \"text-fallback\",\n options: [\n {\n name: SharedOptions.max_tokens, type: OptionType.numeric, min: 1,\n integer: true, step: 200, description: \"The maximum number of tokens to generate\"\n },\n {\n name: SharedOptions.temperature, type: OptionType.numeric, min: 0.0, default: 0.7,\n integer: false, step: 0.1, description: \"A higher temperature biases toward less likely tokens, making the model more creative\"\n },\n {\n name: SharedOptions.top_p, type: OptionType.numeric, min: 0, max: 1,\n integer: false, step: 0.1, description: \"Limits token sampling to the cumulative probability of the top p tokens\"\n },\n {\n name: SharedOptions.top_k, type: OptionType.numeric, min: 1,\n integer: true, step: 1, description: \"Limits token sampling to the top k tokens\"\n },\n {\n name: SharedOptions.presence_penalty, type: OptionType.numeric, min: -2.0, max: 2.0,\n integer: false, step: 0.1, description: \"Penalise tokens if they appear at least once in the text\"\n },\n {\n name: SharedOptions.frequency_penalty, type: OptionType.numeric, min: -2.0, max: 2.0,\n integer: false, step: 0.1, description: \"Penalise tokens based on their frequency in the text\"\n },\n { name: SharedOptions.stop_sequence, type: OptionType.string_list, value: [], description: \"The generation will halt if one of the stop sequences is output\" },\n ]\n};\n//# sourceMappingURL=fallback.js.map","import { OptionType, SharedOptions } from \"../types.js\";\nimport { getMaxOutputTokens } from \"./context-windows.js\";\nimport { textOptionsFallback } from \"./fallback.js\";\nexport var ImagenTaskType;\n(function (ImagenTaskType) {\n ImagenTaskType[\"TEXT_IMAGE\"] = \"TEXT_IMAGE\";\n ImagenTaskType[\"EDIT_MODE_INPAINT_REMOVAL\"] = \"EDIT_MODE_INPAINT_REMOVAL\";\n ImagenTaskType[\"EDIT_MODE_INPAINT_INSERTION\"] = \"EDIT_MODE_INPAINT_INSERTION\";\n ImagenTaskType[\"EDIT_MODE_BGSWAP\"] = \"EDIT_MODE_BGSWAP\";\n ImagenTaskType[\"EDIT_MODE_OUTPAINT\"] = \"EDIT_MODE_OUTPAINT\";\n ImagenTaskType[\"CUSTOMIZATION_SUBJECT\"] = \"CUSTOMIZATION_SUBJECT\";\n ImagenTaskType[\"CUSTOMIZATION_STYLE\"] = \"CUSTOMIZATION_STYLE\";\n ImagenTaskType[\"CUSTOMIZATION_CONTROLLED\"] = \"CUSTOMIZATION_CONTROLLED\";\n ImagenTaskType[\"CUSTOMIZATION_INSTRUCT\"] = \"CUSTOMIZATION_INSTRUCT\";\n})(ImagenTaskType || (ImagenTaskType = {}));\nexport var ImagenMaskMode;\n(function (ImagenMaskMode) {\n ImagenMaskMode[\"MASK_MODE_USER_PROVIDED\"] = \"MASK_MODE_USER_PROVIDED\";\n ImagenMaskMode[\"MASK_MODE_BACKGROUND\"] = \"MASK_MODE_BACKGROUND\";\n ImagenMaskMode[\"MASK_MODE_FOREGROUND\"] = \"MASK_MODE_FOREGROUND\";\n ImagenMaskMode[\"MASK_MODE_SEMANTIC\"] = \"MASK_MODE_SEMANTIC\";\n})(ImagenMaskMode || (ImagenMaskMode = {}));\nexport var ThinkingLevel;\n(function (ThinkingLevel) {\n ThinkingLevel[\"HIGH\"] = \"HIGH\";\n ThinkingLevel[\"LOW\"] = \"LOW\";\n ThinkingLevel[\"THINKING_LEVEL_UNSPECIFIED\"] = \"THINKING_LEVEL_UNSPECIFIED\";\n})(ThinkingLevel || (ThinkingLevel = {}));\nexport function getVertexAiOptions(model, option) {\n if (model.includes(\"imagen-\")) {\n return getImagenOptions(model, option);\n }\n else if (model.includes(\"gemini\")) {\n return getGeminiOptions(model, option);\n }\n else if (model.includes(\"claude\")) {\n return getClaudeOptions(model, option);\n }\n else if (model.includes(\"llama\")) {\n return getLlamaOptions(model);\n }\n return textOptionsFallback;\n}\nfunction getImagenOptions(model, option) {\n const commonOptions = [\n {\n name: SharedOptions.number_of_images, type: OptionType.numeric, min: 1, max: 4, default: 1,\n integer: true, description: \"Number of Images to generate\",\n },\n {\n name: SharedOptions.seed, type: OptionType.numeric, min: 0, max: 4294967295, default: 12,\n integer: true, description: \"The seed of the generated image\"\n },\n {\n name: \"person_generation\", type: OptionType.enum, enum: { \"Disallow the inclusion of people or faces in images\": \"dont_allow\", \"Allow generation of adults only\": \"allow_adult\", \"Allow generation of people of all ages\": \"allow_all\" },\n default: \"allow_adult\", description: \"The safety setting for allowing the generation of people in the image\"\n },\n {\n name: \"safety_setting\", type: OptionType.enum, enum: { \"Block very few problematic prompts and responses\": \"block_none\", \"Block only few problematic prompts and responses\": \"block_only_high\", \"Block some problematic prompts and responses\": \"block_medium_and_above\", \"Strictest filtering\": \"block_low_and_above\" },\n default: \"block_medium_and_above\", description: \"The overall safety setting\"\n },\n ];\n const outputOptions = [\n {\n name: \"image_file_type\", type: OptionType.enum, enum: { \"JPEG\": \"image/jpeg\", \"PNG\": \"image/png\" },\n default: \"image/png\", description: \"The file type of the generated image\",\n refresh: true,\n },\n ];\n const jpegQuality = {\n name: \"jpeg_compression_quality\", type: OptionType.numeric, min: 0, max: 100, default: 75,\n integer: true, description: \"The compression quality of the JPEG image\",\n };\n if (option?.image_file_type === \"image/jpeg\") {\n outputOptions.push(jpegQuality);\n }\n if (model.includes(\"generate\")) {\n // Generate models\n const modeOptions = [\n {\n name: \"aspect_ratio\", type: OptionType.enum, enum: { \"1:1\": \"1:1\", \"4:3\": \"4:3\", \"3:4\": \"3:4\", \"16:9\": \"16:9\", \"9:16\": \"9:16\" },\n default: \"1:1\", description: \"The aspect ratio of the generated image\"\n },\n {\n name: \"add_watermark\", type: OptionType.boolean, default: false, description: \"Add an invisible watermark to the generated image, useful for detection of AI images\"\n },\n ];\n const enhanceOptions = !model.includes(\"generate-001\") ? [\n {\n name: \"enhance_prompt\", type: OptionType.boolean, default: true, description: \"VertexAI automatically rewrites the prompt to better reflect the prompt's intent.\"\n },\n ] : [];\n return {\n _option_id: \"vertexai-imagen\",\n options: [\n ...commonOptions,\n ...modeOptions,\n ...outputOptions,\n ...enhanceOptions,\n ]\n };\n }\n if (model.includes(\"capability\")) {\n // Edit models\n let guidanceScaleDefault = 75;\n if (option?.edit_mode === ImagenTaskType.EDIT_MODE_INPAINT_INSERTION) {\n guidanceScaleDefault = 60;\n }\n const modeOptions = [\n {\n name: \"edit_mode\", type: OptionType.enum,\n enum: {\n \"EDIT_MODE_INPAINT_REMOVAL\": \"EDIT_MODE_INPAINT_REMOVAL\",\n \"EDIT_MODE_INPAINT_INSERTION\": \"EDIT_MODE_INPAINT_INSERTION\",\n \"EDIT_MODE_BGSWAP\": \"EDIT_MODE_BGSWAP\",\n \"EDIT_MODE_OUTPAINT\": \"EDIT_MODE_OUTPAINT\",\n \"CUSTOMIZATION_SUBJECT\": \"CUSTOMIZATION_SUBJECT\",\n \"CUSTOMIZATION_STYLE\": \"CUSTOMIZATION_STYLE\",\n \"CUSTOMIZATION_CONTROLLED\": \"CUSTOMIZATION_CONTROLLED\",\n \"CUSTOMIZATION_INSTRUCT\": \"CUSTOMIZATION_INSTRUCT\",\n },\n description: \"The editing mode. CUSTOMIZATION options use few-shot learning to generate images based on a few examples.\"\n },\n {\n name: \"guidance_scale\", type: OptionType.numeric, min: 0, max: 500, default: guidanceScaleDefault,\n integer: true, description: \"How closely the generation follows the prompt\"\n }\n ];\n const maskOptions = (option?.edit_mode?.includes(\"EDIT\")) ? [\n {\n name: \"mask_mode\", type: OptionType.enum,\n enum: {\n \"MASK_MODE_USER_PROVIDED\": \"MASK_MODE_USER_PROVIDED\",\n \"MASK_MODE_BACKGROUND\": \"MASK_MODE_BACKGROUND\",\n \"MASK_MODE_FOREGROUND\": \"MASK_MODE_FOREGROUND\",\n \"MASK_MODE_SEMANTIC\": \"MASK_MODE_SEMANTIC\",\n },\n default: \"MASK_MODE_USER_PROVIDED\",\n description: \"How should the mask for the generation be provided\"\n },\n {\n name: \"mask_dilation\", type: OptionType.numeric, min: 0, max: 1,\n integer: true, description: \"The mask dilation, grows the mask by a percentage of image width to compensate for imprecise masks.\"\n },\n ] : [];\n const maskClassOptions = (option?.mask_mode === ImagenMaskMode.MASK_MODE_SEMANTIC) ? [\n {\n name: \"mask_class\", type: OptionType.string_list, default: [],\n description: \"Input Class IDs. Create a mask based on image class, based on https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/imagen-api-customization#segment-ids\"\n }\n ] : [];\n const editOptions = option?.edit_mode?.includes(\"EDIT\") ? [\n {\n name: \"edit_steps\", type: OptionType.numeric, default: 75,\n integer: true, description: \"The number of steps for the base image generation, more steps means more time and better quality\"\n },\n ] : [];\n const customizationOptions = option?.edit_mode === ImagenTaskType.CUSTOMIZATION_CONTROLLED\n || option?.edit_mode === ImagenTaskType.CUSTOMIZATION_SUBJECT ? [\n {\n name: \"controlType\", type: OptionType.enum, enum: { \"Face Mesh\": \"CONTROL_TYPE_FACE_MESH\", \"Canny\": \"CONTROL_TYPE_CANNY\", \"Scribble\": \"CONTROL_TYPE_SCRIBBLE\" },\n default: \"CONTROL_TYPE_CANNY\", description: \"Method used to generate the control image\"\n },\n {\n name: \"controlImageComputation\", type: OptionType.boolean, default: true, description: \"Should the control image be computed from the input image, or is it provided\"\n }\n ] : [];\n return {\n _option_id: \"vertexai-imagen\",\n options: [\n ...modeOptions,\n ...commonOptions,\n ...maskOptions,\n ...maskClassOptions,\n ...editOptions,\n ...customizationOptions,\n ...outputOptions,\n ]\n };\n }\n return textOptionsFallback;\n}\nfunction getGeminiOptions(model, _option) {\n // Special handling for gemini-2.5-flash-image\n if (model.includes(\"gemini-2.5-flash-image\")) {\n const options = [\n {\n name: SharedOptions.temperature,\n type: OptionType.numeric,\n min: 0.0,\n max: 2.0,\n default: 0.7,\n step: 0.01,\n description: \"Sampling temperature\"\n },\n {\n name: SharedOptions.top_p,\n type: OptionType.numeric,\n min: 0.0,\n max: 1.0,\n step: 0.01,\n description: \"Nucleus sampling probability\"\n },\n {\n name: \"candidate_count\",\n type: OptionType.numeric,\n min: 1,\n max: 8,\n default: 1,\n integer: true,\n description: \"Number of candidates to generate\"\n },\n {\n name: SharedOptions.max_tokens,\n type: OptionType.numeric,\n min: 1,\n max: 32768,\n integer: true,\n step: 200,\n description: \"Maximum output tokens\"\n }\n ];\n return {\n _option_id: \"vertexai-gemini\",\n options\n };\n }\n // Special handling for gemini-2.5-flash-image and gemini-3-pro-image\n if (model.includes(\"gemini-2.5-flash-image\") || model.includes(\"gemini-3-pro-image\")) {\n const max_tokens_limit = 32768;\n const excludeOptions = [\"max_tokens\", \"presence_penalty\", \"frequency_penalty\", \"seed\", \"top_k\"];\n let commonOptions = textOptionsFallback.options.filter((option) => !excludeOptions.includes(option.name));\n // Set max temperature to 2.0 for gemini-2.5-flash-image\n commonOptions = commonOptions.map((option) => {\n if (option.name === SharedOptions.temperature &&\n option.type === OptionType.numeric) {\n return {\n ...option,\n max: 2.0,\n };\n }\n return option;\n });\n const max_tokens = [{\n name: SharedOptions.max_tokens,\n type: OptionType.numeric,\n min: 1,\n max: max_tokens_limit,\n integer: true,\n step: 200,\n description: \"Maximum output tokens\"\n }];\n const imageAspectRatio = [{\n name: \"image_aspect_ratio\",\n type: OptionType.enum,\n enum: {\n \"1:1\": \"1:1\",\n \"2:3\": \"2:3\",\n \"3:2\": \"3:2\",\n \"3:4\": \"3:4\",\n \"4:3\": \"4:3\",\n \"9:16\": \"9:16\",\n \"16:9\": \"16:9\",\n \"21:9\": \"21:9\"\n },\n description: \"Aspect ratio of the generated images\"\n }];\n return {\n _option_id: \"vertexai-gemini\",\n options: [\n ...max_tokens,\n ...commonOptions,\n ...imageAspectRatio,\n ]\n };\n }\n const max_tokens_limit = getGeminiMaxTokensLimit(model);\n const excludeOptions = [\"max_tokens\"];\n const commonOptions = textOptionsFallback.options.filter((option) => !excludeOptions.includes(option.name));\n const max_tokens = [{\n name: SharedOptions.max_tokens, type: OptionType.numeric, min: 1, max: max_tokens_limit,\n integer: true, step: 200, description: \"The maximum number of tokens to generate\"\n }];\n const seedOption = {\n name: SharedOptions.seed, type: OptionType.numeric, integer: true, description: \"The seed for the generation, useful for reproducibility\"\n };\n if (model.includes(\"-3-\")) {\n const geminiThinkingOptions = [\n {\n name: \"include_thoughts\",\n type: OptionType.boolean,\n default: false,\n description: \"Include the model's reasoning process in the response\"\n }\n ];\n return {\n _option_id: \"vertexai-gemini\",\n options: [\n ...max_tokens,\n ...commonOptions,\n seedOption,\n ...geminiThinkingOptions,\n ]\n };\n }\n if (model.includes(\"-2.5-\")) {\n // Gemini 2.5 thinking models\n // Set budget token ranges based on model variant\n let budgetMin = -1;\n let budgetMax = 24576;\n let budgetDescription = \"\";\n if (model.includes(\"flash-lite\")) {\n budgetMin = -1;\n budgetMax = 24576;\n budgetDescription = \"The target number of tokens to use for reasoning. \" +\n \"Flash Lite default: Model does not think. \" +\n \"Range: 512-24576 tokens. \" +\n \"Set to 0 to disable thinking, -1 for dynamic thinking.\";\n }\n else if (model.includes(\"flash\")) {\n budgetMin = -1;\n budgetMax = 24576;\n budgetDescription = \"The target number of tokens to use for reasoning. \" +\n \"Flash default: Dynamic thinking (model decides when and how much to think). \" +\n \"Range: 0-24576 tokens. \" +\n \"Set to 0 to disable thinking, -1 for dynamic thinking.\";\n }\n else if (model.includes(\"pro\")) {\n budgetMin = -1;\n budgetMax = 32768;\n budgetDescription = \"The target number of tokens to use for reasoning. \" +\n \"Pro default: Dynamic thinking (model decides when and how much to think). \" +\n \"Range: 128-32768 tokens. \" +\n \"Cannot disable thinking - minimum 128 tokens. Set to -1 for dynamic thinking.\";\n }\n const geminiThinkingOptions = [\n {\n name: \"include_thoughts\",\n type: OptionType.boolean,\n default: false,\n description: \"Include the model's reasoning process in the response\"\n },\n {\n name: \"thinking_budget_tokens\",\n type: OptionType.numeric,\n min: budgetMin,\n max: budgetMax,\n default: undefined,\n integer: true,\n step: 100,\n description: budgetDescription,\n }\n ];\n return {\n _option_id: \"vertexai-gemini\",\n options: [\n ...max_tokens,\n ...commonOptions,\n seedOption,\n ...geminiThinkingOptions,\n ]\n };\n }\n return {\n _option_id: \"vertexai-gemini\",\n options: [\n ...max_tokens,\n ...commonOptions,\n seedOption,\n ]\n };\n}\nfunction getClaudeOptions(model, option) {\n const max_tokens_limit = getClaudeMaxTokensLimit(model);\n const excludeOptions = [\"max_tokens\", \"presence_penalty\", \"frequency_penalty\"];\n const commonOptions = textOptionsFallback.options.filter((option) => !excludeOptions.includes(option.name));\n const max_tokens = [{\n name: SharedOptions.max_tokens, type: OptionType.numeric, min: 1, max: max_tokens_limit,\n integer: true, step: 200, description: \"The maximum number of tokens to generate\"\n }];\n if (model.includes(\"-3-7\") || model.includes(\"-4\")) {\n const claudeModeOptions = [\n {\n name: \"thinking_mode\",\n type: OptionType.boolean,\n default: false,\n description: \"If true, use the extended reasoning mode\"\n },\n ];\n const claudeThinkingOptions = option?.thinking_mode ? [\n {\n name: \"thinking_budget_tokens\",\n type: OptionType.numeric,\n min: 1024,\n default: 1024,\n integer: true,\n step: 100,\n description: \"The target number of tokens to use for reasoning, not a hard limit.\"\n },\n {\n name: \"include_thoughts\",\n type: OptionType.boolean,\n default: false,\n description: \"Include the model's reasoning process in the response\"\n }\n ] : [];\n return {\n _option_id: \"vertexai-claude\",\n options: [\n ...max_tokens,\n ...commonOptions,\n ...claudeModeOptions,\n ...claudeThinkingOptions,\n ]\n };\n }\n return {\n _option_id: \"vertexai-claude\",\n options: [\n ...max_tokens,\n ...commonOptions,\n ]\n };\n}\nfunction getLlamaOptions(model) {\n const max_tokens_limit = getLlamaMaxTokensLimit(model);\n const excludeOptions = [\"max_tokens\", \"presence_penalty\", \"frequency_penalty\", \"stop_sequence\"];\n let commonOptions = textOptionsFallback.options.filter((option) => !excludeOptions.includes(option.name));\n const max_tokens = [{\n name: SharedOptions.max_tokens, type: OptionType.numeric, min: 1, max: max_tokens_limit,\n integer: true, step: 200, description: \"The maximum number of tokens to generate\"\n }];\n // Set max temperature to 1.0 for Llama models\n commonOptions = commonOptions.map((option) => {\n if (option.name === SharedOptions.temperature &&\n option.type === OptionType.numeric) {\n return {\n ...option,\n max: 1.0,\n };\n }\n return option;\n });\n return {\n _option_id: \"text-fallback\",\n options: [\n ...max_tokens,\n ...commonOptions,\n ]\n };\n}\nfunction getGeminiMaxTokensLimit(model) {\n if (model.includes(\"gemini-2.5-flash-image\") || model.includes(\"gemini-3-pro-image\")) {\n return 32768;\n }\n if (model.includes(\"thinking\") || model.includes(\"-2.5-\") || model.includes(\"-3-\")) {\n return 65535; // API upper bound is exclusive\n }\n if (model.includes(\"ultra\") || model.includes(\"vision\")) {\n return 2048;\n }\n return 8192;\n}\n// Delegate to provider-agnostic limits,\n// override only where VertexAI supports extended output (128K for 3.7)\nfunction getClaudeMaxTokensLimit(model) {\n if (model.includes('-3-7'))\n return 128000;\n return getMaxOutputTokens(model);\n}\nfunction getLlamaMaxTokensLimit(_model) {\n return 8192;\n}\nexport function getMaxTokensLimitVertexAi(model) {\n if (model.includes(\"imagen-\")) {\n return 0; // Imagen models do not have a max tokens limit in the same way as text models\n }\n else if (model.includes(\"claude\")) {\n return getClaudeMaxTokensLimit(model);\n }\n else if (model.includes(\"gemini\")) {\n return getGeminiMaxTokensLimit(model);\n }\n else if (model.includes(\"llama\")) {\n return getLlamaMaxTokensLimit(model);\n }\n return 8192; // Default fallback limit\n}\n//# sourceMappingURL=vertexai.js.map","import { ProviderList, Providers } from \"@llumiverse/common\";\n// Virtual providers from studio\nexport var CustomProviders;\n(function (CustomProviders) {\n CustomProviders[\"virtual_lb\"] = \"virtual_lb\";\n CustomProviders[\"virtual_mediator\"] = \"virtual_mediator\";\n CustomProviders[\"test\"] = \"test\";\n})(CustomProviders || (CustomProviders = {}));\nexport const SupportedProviders = {\n ...Providers,\n ...CustomProviders\n};\nexport const CustomProvidersList = {\n virtual_lb: {\n id: CustomProviders.virtual_lb,\n name: \"Virtual - Load Balancer\",\n requiresApiKey: false,\n requiresEndpointUrl: false,\n supportSearch: false,\n },\n virtual_mediator: {\n id: CustomProviders.virtual_mediator,\n name: \"Virtual - Mediator\",\n requiresApiKey: false,\n requiresEndpointUrl: false,\n supportSearch: false,\n },\n test: {\n id: CustomProviders.test,\n name: \"Test LLM\",\n requiresApiKey: false,\n requiresEndpointUrl: false,\n supportSearch: false,\n },\n};\nexport const SupportedProvidersList = {\n ...ProviderList,\n ...CustomProvidersList\n};\nexport const ExecutionEnvironmentRefPopulate = \"id name provider enabled_models default_model endpoint_url allowed_projects account created_at updated_at\";\n//# sourceMappingURL=environment.js.map","export var SupportedIntegrations;\n(function (SupportedIntegrations) {\n SupportedIntegrations[\"gladia\"] = \"gladia\";\n SupportedIntegrations[\"github\"] = \"github\";\n SupportedIntegrations[\"aws\"] = \"aws\";\n SupportedIntegrations[\"magic_pdf\"] = \"magic_pdf\";\n SupportedIntegrations[\"serper\"] = \"serper\";\n SupportedIntegrations[\"exa\"] = \"exa\";\n SupportedIntegrations[\"linkup\"] = \"linkup\";\n SupportedIntegrations[\"resend\"] = \"resend\";\n SupportedIntegrations[\"ask_user_webhook\"] = \"ask_user_webhook\";\n})(SupportedIntegrations || (SupportedIntegrations = {}));\n//# sourceMappingURL=integrations.js.map","export var MeterNames;\n(function (MeterNames) {\n MeterNames[\"analyzed_pages\"] = \"analyzed_pages\";\n MeterNames[\"extracted_tables\"] = \"extracted_tables\";\n MeterNames[\"analyzed_images\"] = \"analyzed_images\";\n MeterNames[\"input_token_used\"] = \"input_token_used\";\n MeterNames[\"output_token_used\"] = \"output_token_used\";\n MeterNames[\"task_run\"] = \"task_run\";\n})(MeterNames || (MeterNames = {}));\n//# sourceMappingURL=meters.js.map","export var ProjectRoles;\n(function (ProjectRoles) {\n ProjectRoles[\"owner\"] = \"owner\";\n ProjectRoles[\"admin\"] = \"admin\";\n ProjectRoles[\"manager\"] = \"manager\";\n ProjectRoles[\"developer\"] = \"developer\";\n ProjectRoles[\"application\"] = \"application\";\n ProjectRoles[\"consumer\"] = \"consumer\";\n ProjectRoles[\"executor\"] = \"executor\";\n ProjectRoles[\"reader\"] = \"reader\";\n ProjectRoles[\"billing\"] = \"billing\";\n ProjectRoles[\"member\"] = \"member\";\n ProjectRoles[\"app_member\"] = \"app_member\";\n ProjectRoles[\"content_superadmin\"] = \"content_superadmin\";\n})(ProjectRoles || (ProjectRoles = {}));\nexport function isRoleIncludedIn(role, includingRole) {\n switch (includingRole) {\n case ProjectRoles.owner:\n return true; // includes billing to?\n case ProjectRoles.admin:\n return role !== ProjectRoles.billing && role !== ProjectRoles.owner;\n case ProjectRoles.developer:\n return role === ProjectRoles.developer;\n case ProjectRoles.billing:\n return role === ProjectRoles.billing;\n default:\n return false;\n }\n}\nexport var ResourceVisibility;\n(function (ResourceVisibility) {\n ResourceVisibility[\"public\"] = \"public\";\n ResourceVisibility[\"account\"] = \"account\";\n ResourceVisibility[\"project\"] = \"project\";\n})(ResourceVisibility || (ResourceVisibility = {}));\n/**\n * System interaction category enum.\n * Categories group one or more system interactions for default model assignment.\n */\nexport var SystemInteractionCategory;\n(function (SystemInteractionCategory) {\n SystemInteractionCategory[\"content_type\"] = \"content_type\";\n SystemInteractionCategory[\"intake\"] = \"intake\";\n SystemInteractionCategory[\"analysis\"] = \"analysis\";\n SystemInteractionCategory[\"non_applicable\"] = \"non_applicable\";\n})(SystemInteractionCategory || (SystemInteractionCategory = {}));\n/**\n * Map system interaction endpoints to categories.\n */\nexport const SYSTEM_INTERACTION_CATEGORIES = {\n \"ExtractInformation\": SystemInteractionCategory.intake,\n \"SelectDocumentType\": SystemInteractionCategory.intake,\n \"GenerateMetadataModel\": SystemInteractionCategory.content_type,\n \"ChunkDocument\": SystemInteractionCategory.intake,\n \"IdentifyTextSections\": SystemInteractionCategory.intake,\n \"AnalyzeDocument\": SystemInteractionCategory.analysis,\n \"ReduceTextSections\": SystemInteractionCategory.analysis,\n \"GenericAgent\": SystemInteractionCategory.non_applicable,\n \"AdhocTaskAgent\": SystemInteractionCategory.non_applicable,\n \"Mediator\": SystemInteractionCategory.non_applicable,\n \"AnalyzeConversation\": SystemInteractionCategory.analysis,\n \"GetAgentConversationTopic\": SystemInteractionCategory.analysis,\n};\n/**\n * Get category for a system interaction endpoint.\n * Returns undefined if category is non-applicable or endpoint is not recognized.\n * Note: Caller is responsible for determining if the interaction is a system interaction.\n * @param endpoint - The interaction endpoint name\n */\nexport function getSystemInteractionCategory(endpoint) {\n if (endpoint.startsWith(\"sys:\")) {\n // Strip sys: prefix\n endpoint = endpoint.substring(4);\n }\n const category = SYSTEM_INTERACTION_CATEGORIES[endpoint];\n if (category === SystemInteractionCategory.non_applicable) {\n return undefined;\n }\n return category || undefined;\n}\n// export interface ProjectConfigurationEmbeddings {\n// environment: string;\n// max_tokens: number;\n// dimensions: number;\n// model?: string;\n// }\nexport var SupportedEmbeddingTypes;\n(function (SupportedEmbeddingTypes) {\n SupportedEmbeddingTypes[\"text\"] = \"text\";\n SupportedEmbeddingTypes[\"image\"] = \"image\";\n SupportedEmbeddingTypes[\"properties\"] = \"properties\";\n})(SupportedEmbeddingTypes || (SupportedEmbeddingTypes = {}));\nexport var FullTextType;\n(function (FullTextType) {\n FullTextType[\"full_text\"] = \"full_text\";\n})(FullTextType || (FullTextType = {}));\nexport const SearchTypes = {\n ...SupportedEmbeddingTypes,\n ...FullTextType\n};\nexport const ProjectRefPopulate = \"id name account\";\n/**\n * Supported languages for full-text search with their display names.\n * Maps ISO 639-1 codes to human-readable language names.\n */\nexport const SUPPORTED_SEARCH_LANGUAGES = {\n en: 'English',\n zh: 'Chinese',\n es: 'Spanish',\n hi: 'Hindi',\n ar: 'Arabic',\n pt: 'Portuguese',\n bn: 'Bengali',\n ru: 'Russian',\n ja: 'Japanese',\n de: 'German',\n fr: 'French',\n ko: 'Korean',\n it: 'Italian',\n tr: 'Turkish',\n vi: 'Vietnamese',\n pl: 'Polish',\n uk: 'Ukrainian',\n nl: 'Dutch',\n th: 'Thai',\n el: 'Greek',\n cs: 'Czech',\n sv: 'Swedish',\n ro: 'Romanian',\n hu: 'Hungarian',\n da: 'Danish',\n fi: 'Finnish',\n no: 'Norwegian',\n he: 'Hebrew',\n id: 'Indonesian',\n fa: 'Persian',\n};\n//# sourceMappingURL=project.js.map","export var PromptStatus;\n(function (PromptStatus) {\n PromptStatus[\"draft\"] = \"draft\";\n PromptStatus[\"published\"] = \"published\";\n PromptStatus[\"archived\"] = \"archived\";\n})(PromptStatus || (PromptStatus = {}));\nexport var PromptSegmentDefType;\n(function (PromptSegmentDefType) {\n PromptSegmentDefType[\"chat\"] = \"chat\";\n PromptSegmentDefType[\"template\"] = \"template\";\n})(PromptSegmentDefType || (PromptSegmentDefType = {}));\nexport var TemplateType;\n(function (TemplateType) {\n TemplateType[\"jst\"] = \"jst\";\n TemplateType[\"handlebars\"] = \"handlebars\";\n TemplateType[\"text\"] = \"text\";\n})(TemplateType || (TemplateType = {}));\n//# sourceMappingURL=prompt.js.map","export var ResolvableRefType;\n(function (ResolvableRefType) {\n ResolvableRefType[\"project\"] = \"Project\";\n ResolvableRefType[\"projects\"] = \"Projects\";\n ResolvableRefType[\"environment\"] = \"Environment\";\n ResolvableRefType[\"user\"] = \"User\";\n ResolvableRefType[\"account\"] = \"Account\";\n ResolvableRefType[\"interaction\"] = \"Interaction\";\n ResolvableRefType[\"userGroup\"] = \"UserGroup\";\n})(ResolvableRefType || (ResolvableRefType = {}));\n//# sourceMappingURL=refs.js.map","export var CollectionStatus;\n(function (CollectionStatus) {\n CollectionStatus[\"active\"] = \"active\";\n CollectionStatus[\"archived\"] = \"archived\";\n})(CollectionStatus || (CollectionStatus = {}));\n//# sourceMappingURL=collections.js.map","export var ContentObjectApiHeaders;\n(function (ContentObjectApiHeaders) {\n ContentObjectApiHeaders[\"COLLECTION_ID\"] = \"x-collection-id\";\n ContentObjectApiHeaders[\"PROCESSING_PRIORITY\"] = \"x-processing-priority\";\n ContentObjectApiHeaders[\"CREATE_REVISION\"] = \"x-create-revision\";\n ContentObjectApiHeaders[\"REVISION_LABEL\"] = \"x-revision-label\";\n /** When set to 'true', prevents this update from triggering workflow rules */\n ContentObjectApiHeaders[\"SUPPRESS_WORKFLOWS\"] = \"x-suppress-workflows\";\n})(ContentObjectApiHeaders || (ContentObjectApiHeaders = {}));\n/**\n * Headers for Data Store API calls.\n * Used for Cloud Run session affinity to route requests to the same instance.\n */\nexport var DataStoreApiHeaders;\n(function (DataStoreApiHeaders) {\n /** Data store ID for session affinity - routes requests for same store to same instance */\n DataStoreApiHeaders[\"DATA_STORE_ID\"] = \"x-data-store-id\";\n})(DataStoreApiHeaders || (DataStoreApiHeaders = {}));\nexport var ContentObjectStatus;\n(function (ContentObjectStatus) {\n ContentObjectStatus[\"created\"] = \"created\";\n ContentObjectStatus[\"processing\"] = \"processing\";\n ContentObjectStatus[\"ready\"] = \"ready\";\n ContentObjectStatus[\"completed\"] = \"completed\";\n ContentObjectStatus[\"failed\"] = \"failed\";\n ContentObjectStatus[\"archived\"] = \"archived\";\n})(ContentObjectStatus || (ContentObjectStatus = {}));\nexport var ContentNature;\n(function (ContentNature) {\n ContentNature[\"Video\"] = \"video\";\n ContentNature[\"Image\"] = \"image\";\n ContentNature[\"Audio\"] = \"audio\";\n ContentNature[\"Document\"] = \"document\";\n ContentNature[\"Code\"] = \"code\";\n ContentNature[\"Other\"] = \"other\";\n})(ContentNature || (ContentNature = {}));\nexport const POSTER_RENDITION_NAME = \"Poster\";\nexport const AUDIO_RENDITION_NAME = \"Audio\";\nexport const WEB_VIDEO_RENDITION_NAME = \"Web\";\nexport const PDF_RENDITION_NAME = \"PDF\";\nexport function getContentTypeRefId(type) {\n return type.id || type.code;\n}\n/**\n * Returns true if the type id represents an in-code type (system or app-contributed).\n * In-code types use colon-separated ids like \"sys:Invoice\" or \"app:myapp:Article\".\n * These types are read-only and cannot be edited through the UI.\n */\nexport function isInCodeType(typeId) {\n return typeId.includes(':');\n}\nexport var WorkflowRuleInputType;\n(function (WorkflowRuleInputType) {\n WorkflowRuleInputType[\"single\"] = \"single\";\n WorkflowRuleInputType[\"multiple\"] = \"multiple\";\n WorkflowRuleInputType[\"none\"] = \"none\";\n})(WorkflowRuleInputType || (WorkflowRuleInputType = {}));\nexport var ImageRenditionFormat;\n(function (ImageRenditionFormat) {\n ImageRenditionFormat[\"jpeg\"] = \"jpeg\";\n ImageRenditionFormat[\"png\"] = \"png\";\n ImageRenditionFormat[\"webp\"] = \"webp\";\n})(ImageRenditionFormat || (ImageRenditionFormat = {}));\nexport var MarkdownRenditionFormat;\n(function (MarkdownRenditionFormat) {\n MarkdownRenditionFormat[\"docx\"] = \"docx\";\n MarkdownRenditionFormat[\"pdf\"] = \"pdf\";\n})(MarkdownRenditionFormat || (MarkdownRenditionFormat = {}));\n/**\n * Matrix of supported content type → format conversions.\n * This is the authoritative source of truth for what renditions can be generated.\n *\n * Key patterns:\n * - Exact MIME types (e.g., 'application/pdf')\n * - Wildcard patterns (e.g., 'image/*', 'video/*')\n */\nconst RENDITION_COMPATIBILITY = {\n // Image formats can generate: jpeg, png, webp\n 'image/*': [ImageRenditionFormat.jpeg, ImageRenditionFormat.png, ImageRenditionFormat.webp],\n // Video formats can generate: jpeg, png (thumbnails)\n 'video/*': [ImageRenditionFormat.jpeg, ImageRenditionFormat.png],\n // PDF can generate: jpeg, png, webp (page images)\n 'application/pdf': [ImageRenditionFormat.jpeg, ImageRenditionFormat.png, ImageRenditionFormat.webp],\n // Markdown can generate: pdf, docx (NOT jpeg/png)\n 'text/markdown': [MarkdownRenditionFormat.pdf, MarkdownRenditionFormat.docx],\n // Any text/* can generate: docx (editable export)\n 'text/*': [MarkdownRenditionFormat.docx],\n // Office documents can generate: pdf\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': [MarkdownRenditionFormat.pdf],\n 'application/msword': [MarkdownRenditionFormat.pdf],\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation': [MarkdownRenditionFormat.pdf],\n 'application/vnd.ms-powerpoint': [MarkdownRenditionFormat.pdf],\n};\n/**\n * Check if a specific rendition format can be generated from a content type.\n *\n * @param contentType - The MIME type of the source content (e.g., 'image/png', 'text/markdown')\n * @param format - The desired rendition format (e.g., ImageRenditionFormat.jpeg)\n * @returns true if the format can be generated from the content type\n *\n * @example\n * canGenerateRendition('image/png', ImageRenditionFormat.jpeg) // true\n * canGenerateRendition('text/markdown', ImageRenditionFormat.jpeg) // false\n * canGenerateRendition('text/markdown', MarkdownRenditionFormat.pdf) // true\n */\nexport function canGenerateRendition(contentType, format) {\n if (!contentType)\n return false;\n const formatStr = typeof format === 'string' ? format : format;\n // Check exact match first\n const exactMatch = RENDITION_COMPATIBILITY[contentType];\n if (exactMatch && exactMatch.some(f => f === formatStr)) {\n return true;\n }\n // Check wildcard patterns (e.g., 'image/*', 'video/*')\n const [category] = contentType.split('/');\n const wildcardKey = `${category}/*`;\n const wildcardMatch = RENDITION_COMPATIBILITY[wildcardKey];\n if (wildcardMatch && wildcardMatch.some(f => f === formatStr)) {\n return true;\n }\n return false;\n}\n/**\n * Get the list of rendition formats supported for a given content type.\n *\n * @param contentType - The MIME type of the source content\n * @returns Array of supported rendition formats, or empty array if none\n *\n * @example\n * getSupportedRenditionFormats('image/png') // [jpeg, png, webp]\n * getSupportedRenditionFormats('text/markdown') // [pdf, docx]\n * getSupportedRenditionFormats('text/html') // []\n */\nexport function getSupportedRenditionFormats(contentType) {\n if (!contentType)\n return [];\n // Check exact match first\n if (RENDITION_COMPATIBILITY[contentType]) {\n return [...RENDITION_COMPATIBILITY[contentType]];\n }\n // Check wildcard patterns\n const [category] = contentType.split('/');\n const wildcardKey = `${category}/*`;\n const wildcardMatch = RENDITION_COMPATIBILITY[wildcardKey];\n if (wildcardMatch) {\n return [...wildcardMatch];\n }\n return [];\n}\n/**\n * Check if a content type supports visual (image) renditions.\n * This is useful for determining if a document can have thumbnails/previews.\n *\n * @param contentType - The MIME type of the source content\n * @returns true if the content type can generate JPEG renditions\n *\n * @example\n * supportsVisualRendition('image/png') // true\n * supportsVisualRendition('application/pdf') // true\n * supportsVisualRendition('text/markdown') // false\n */\nexport function supportsVisualRendition(contentType) {\n return canGenerateRendition(contentType, ImageRenditionFormat.jpeg);\n}\nexport var ContentObjectProcessingPriority;\n(function (ContentObjectProcessingPriority) {\n ContentObjectProcessingPriority[\"normal\"] = \"normal\";\n ContentObjectProcessingPriority[\"low\"] = \"low\";\n})(ContentObjectProcessingPriority || (ContentObjectProcessingPriority = {}));\n//# sourceMappingURL=store.js.map","export var ContentEventName;\n(function (ContentEventName) {\n ContentEventName[\"create\"] = \"create\";\n ContentEventName[\"change_type\"] = \"change_type\";\n ContentEventName[\"update\"] = \"update\";\n ContentEventName[\"revision_created\"] = \"revision_created\";\n ContentEventName[\"delete\"] = \"delete\";\n ContentEventName[\"workflow_finished\"] = \"workflow_finished\";\n ContentEventName[\"workflow_execution_request\"] = \"workflow_execution_request\";\n ContentEventName[\"api_request\"] = \"api_request\";\n})(ContentEventName || (ContentEventName = {}));\nexport function getDocumentIds(payload) {\n // Check new input format first\n if (payload.input?.inputType === 'objectIds') {\n return payload.input.objectIds;\n }\n // Fall back to legacy objectIds field\n if (payload.objectIds) {\n return payload.objectIds;\n }\n return [];\n}\n// Task status enum for processed history\nexport var TaskStatus;\n(function (TaskStatus) {\n TaskStatus[\"SCHEDULED\"] = \"scheduled\";\n TaskStatus[\"RUNNING\"] = \"running\";\n TaskStatus[\"COMPLETED\"] = \"completed\";\n TaskStatus[\"FAILED\"] = \"failed\";\n TaskStatus[\"CANCELED\"] = \"canceled\";\n TaskStatus[\"TIMED_OUT\"] = \"timed_out\";\n TaskStatus[\"TERMINATED\"] = \"terminated\";\n TaskStatus[\"SENT\"] = \"sent\";\n TaskStatus[\"RECEIVED\"] = \"received\";\n})(TaskStatus || (TaskStatus = {}));\n// Task type enum\nexport var TaskType;\n(function (TaskType) {\n TaskType[\"ACTIVITY\"] = \"activity\";\n TaskType[\"CHILD_WORKFLOW\"] = \"childWorkflow\";\n TaskType[\"SIGNAL\"] = \"signal\";\n TaskType[\"TIMER\"] = \"timer\";\n})(TaskType || (TaskType = {}));\nexport var WorkflowExecutionStatus;\n(function (WorkflowExecutionStatus) {\n WorkflowExecutionStatus[WorkflowExecutionStatus[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n WorkflowExecutionStatus[WorkflowExecutionStatus[\"RUNNING\"] = 1] = \"RUNNING\";\n WorkflowExecutionStatus[WorkflowExecutionStatus[\"COMPLETED\"] = 2] = \"COMPLETED\";\n WorkflowExecutionStatus[WorkflowExecutionStatus[\"FAILED\"] = 3] = \"FAILED\";\n WorkflowExecutionStatus[WorkflowExecutionStatus[\"CANCELED\"] = 4] = \"CANCELED\";\n WorkflowExecutionStatus[WorkflowExecutionStatus[\"TERMINATED\"] = 5] = \"TERMINATED\";\n WorkflowExecutionStatus[WorkflowExecutionStatus[\"CONTINUED_AS_NEW\"] = 6] = \"CONTINUED_AS_NEW\";\n WorkflowExecutionStatus[WorkflowExecutionStatus[\"TIMED_OUT\"] = 7] = \"TIMED_OUT\";\n})(WorkflowExecutionStatus || (WorkflowExecutionStatus = {}));\nexport var AgentMessageType;\n(function (AgentMessageType) {\n AgentMessageType[AgentMessageType[\"SYSTEM\"] = 0] = \"SYSTEM\";\n AgentMessageType[AgentMessageType[\"THOUGHT\"] = 1] = \"THOUGHT\";\n AgentMessageType[AgentMessageType[\"PLAN\"] = 2] = \"PLAN\";\n AgentMessageType[AgentMessageType[\"UPDATE\"] = 3] = \"UPDATE\";\n AgentMessageType[AgentMessageType[\"COMPLETE\"] = 4] = \"COMPLETE\";\n AgentMessageType[AgentMessageType[\"WARNING\"] = 5] = \"WARNING\";\n AgentMessageType[AgentMessageType[\"ERROR\"] = 6] = \"ERROR\";\n AgentMessageType[AgentMessageType[\"ANSWER\"] = 7] = \"ANSWER\";\n AgentMessageType[AgentMessageType[\"QUESTION\"] = 8] = \"QUESTION\";\n AgentMessageType[AgentMessageType[\"REQUEST_INPUT\"] = 9] = \"REQUEST_INPUT\";\n AgentMessageType[AgentMessageType[\"IDLE\"] = 10] = \"IDLE\";\n AgentMessageType[AgentMessageType[\"TERMINATED\"] = 11] = \"TERMINATED\";\n AgentMessageType[AgentMessageType[\"STREAMING_CHUNK\"] = 12] = \"STREAMING_CHUNK\";\n AgentMessageType[AgentMessageType[\"BATCH_PROGRESS\"] = 13] = \"BATCH_PROGRESS\";\n})(AgentMessageType || (AgentMessageType = {}));\n// Type guards — check both message type and details shape for safety\nexport function isToolCallMessage(msg) {\n return msg.type === AgentMessageType.THOUGHT &&\n !!msg.details &&\n typeof msg.details === 'object' &&\n typeof msg.details.tool === 'string';\n}\nexport function isDocumentEventMessage(msg) {\n return msg.type === AgentMessageType.UPDATE &&\n !!msg.details &&\n typeof msg.details === 'object' &&\n (msg.details.event_class === 'document_created' || msg.details.event_class === 'document_updated') &&\n typeof msg.details.document_id === 'string';\n}\nexport function isFileProcessingMessage(msg) {\n return msg.type === AgentMessageType.SYSTEM &&\n !!msg.details &&\n typeof msg.details === 'object' &&\n msg.details.system_type === 'file_processing' &&\n Array.isArray(msg.details.files);\n}\nexport function isPlanMessage(msg) {\n return msg.type === AgentMessageType.PLAN &&\n !!msg.details &&\n typeof msg.details === 'object' &&\n Array.isArray(msg.details.plan);\n}\nexport function isRequestInputMessage(msg) {\n return msg.type === AgentMessageType.REQUEST_INPUT &&\n !!msg.details &&\n typeof msg.details === 'object';\n}\n// ============================================\n// TYPE GUARDS\n// ============================================\n/**\n * Check if a message is in compact format\n */\nexport function isCompactMessage(msg) {\n return typeof msg === 'object' && msg !== null && 't' in msg;\n}\n/**\n * Check if a message is in legacy format\n */\nexport function isLegacyMessage(msg) {\n return typeof msg === 'object' && msg !== null && 'type' in msg && !('t' in msg);\n}\n// ============================================\n// CONVERTERS\n// ============================================\n/**\n * Map old string enum values to AgentMessageType\n */\nconst STRING_TO_TYPE_MAP = {\n 'system': AgentMessageType.SYSTEM,\n 'thought': AgentMessageType.THOUGHT,\n 'plan': AgentMessageType.PLAN,\n 'update': AgentMessageType.UPDATE,\n 'complete': AgentMessageType.COMPLETE,\n 'warning': AgentMessageType.WARNING,\n 'error': AgentMessageType.ERROR,\n 'answer': AgentMessageType.ANSWER,\n 'question': AgentMessageType.QUESTION,\n 'request_input': AgentMessageType.REQUEST_INPUT,\n 'idle': AgentMessageType.IDLE,\n 'terminated': AgentMessageType.TERMINATED,\n 'streaming_chunk': AgentMessageType.STREAMING_CHUNK,\n 'batch_progress': AgentMessageType.BATCH_PROGRESS,\n};\n/**\n * Map integer values to AgentMessageType (primary format)\n */\nconst INT_TO_TYPE_MAP = {\n 0: AgentMessageType.SYSTEM,\n 1: AgentMessageType.THOUGHT,\n 2: AgentMessageType.PLAN,\n 3: AgentMessageType.UPDATE,\n 4: AgentMessageType.COMPLETE,\n 5: AgentMessageType.WARNING,\n 6: AgentMessageType.ERROR,\n 7: AgentMessageType.ANSWER,\n 8: AgentMessageType.QUESTION,\n 9: AgentMessageType.REQUEST_INPUT,\n 10: AgentMessageType.IDLE,\n 11: AgentMessageType.TERMINATED,\n 12: AgentMessageType.STREAMING_CHUNK,\n 13: AgentMessageType.BATCH_PROGRESS,\n};\n/**\n * Normalize message type from string or number to AgentMessageType\n */\nexport function normalizeMessageType(type) {\n // Handle integer type (current format and AgentMessageType enum values)\n if (typeof type === 'number') {\n return INT_TO_TYPE_MAP[type] ?? AgentMessageType.UPDATE;\n }\n // Handle string type (legacy messages from Redis with 90-day TTL)\n if (typeof type === 'string') {\n return STRING_TO_TYPE_MAP[type] ?? AgentMessageType.UPDATE;\n }\n return AgentMessageType.UPDATE;\n}\n/**\n * Convert legacy AgentMessage to CompactMessage\n */\nexport function toCompactMessage(legacy) {\n const compact = {\n t: normalizeMessageType(legacy.type),\n };\n if (legacy.message)\n compact.m = legacy.message;\n if (legacy.workstream_id && legacy.workstream_id !== 'main')\n compact.w = legacy.workstream_id;\n if (legacy.timestamp)\n compact.ts = legacy.timestamp;\n // Handle legacy streaming chunk details\n if (compact.t === AgentMessageType.STREAMING_CHUNK && legacy.details) {\n const d = legacy.details;\n if (d.is_final)\n compact.f = 1;\n // streaming_id and chunk_index are no longer needed\n }\n else if (legacy.details) {\n compact.d = legacy.details;\n }\n return compact;\n}\n/**\n * Parse any message format (compact or legacy) into CompactMessage.\n * Use this as the entry point for all received messages.\n */\nexport function parseMessage(data) {\n const parsed = typeof data === 'string' ? JSON.parse(data) : data;\n if (isCompactMessage(parsed))\n return parsed;\n if (isLegacyMessage(parsed))\n return toCompactMessage(parsed);\n throw new Error('Unknown message format');\n}\n/**\n * Create a compact message (convenience function for server-side)\n */\nexport function createCompactMessage(type, options = {}) {\n const compact = { t: type };\n if (options.message)\n compact.m = options.message;\n if (options.workstreamId && options.workstreamId !== 'main')\n compact.w = options.workstreamId;\n if (options.details)\n compact.d = options.details;\n if (options.isFinal)\n compact.f = 1;\n if (options.timestamp)\n compact.ts = options.timestamp;\n return compact;\n}\n/**\n * Convert CompactMessage back to AgentMessage (for UI components).\n * This allows UI to continue using familiar field names while wire format is compact.\n * @param compact The compact message to convert\n * @param workflowRunId Optional workflow_run_id (known from SSE context, not in compact format)\n */\nexport function toAgentMessage(compact, workflowRunId = '') {\n const message = {\n type: compact.t,\n timestamp: compact.ts || Date.now(),\n workflow_run_id: workflowRunId,\n message: compact.m || '',\n workstream_id: compact.w || 'main',\n };\n if (compact.d !== undefined)\n message.details = compact.d;\n // For streaming chunks, restore is_final and streaming_id in details\n // (streaming_id removed from wire format, use workstream_id as grouping key)\n if (compact.t === AgentMessageType.STREAMING_CHUNK) {\n message.details = {\n ...(typeof compact.d === 'object' ? compact.d : {}),\n streaming_id: compact.w || 'main', // Use workstream_id as streaming_id\n is_final: compact.f === 1,\n activity_id: compact.i, // For deduplication with final THOUGHT/ANSWER\n };\n }\n return message;\n}\n/**\n * Status of a file being processed for conversation use.\n */\nexport var FileProcessingStatus;\n(function (FileProcessingStatus) {\n /** File is being uploaded to artifact storage */\n FileProcessingStatus[\"UPLOADING\"] = \"uploading\";\n /** File uploaded, text extraction in progress */\n FileProcessingStatus[\"PROCESSING\"] = \"processing\";\n /** File is ready for use in conversation */\n FileProcessingStatus[\"READY\"] = \"ready\";\n /** File processing failed */\n FileProcessingStatus[\"ERROR\"] = \"error\";\n})(FileProcessingStatus || (FileProcessingStatus = {}));\n/**\n * Get the Redis pub/sub channel name for workflow messages.\n * Used by both publishers (workflow activities, studio-server) and subscribers (zeno-server, clients).\n * @param workflowRunId - The Temporal workflow run ID (NOT the interaction execution run ID)\n */\nexport function getWorkflowChannel(workflowRunId) {\n return `workflow:${workflowRunId}:channel`;\n}\n/**\n * Get the Redis list key for storing workflow message history.\n * Messages are stored here for retrieval by reconnecting clients.\n * @param workflowRunId - The Temporal workflow run ID (NOT the interaction execution run ID)\n */\nexport function getWorkflowUpdatesKey(workflowRunId) {\n return `workflow:${workflowRunId}:updates`;\n}\nexport const LOW_PRIORITY_TASK_QUEUE = \"low_priority\";\n//# sourceMappingURL=workflow.js.map","export var TrainingSessionStatus;\n(function (TrainingSessionStatus) {\n TrainingSessionStatus[\"created\"] = \"created\";\n TrainingSessionStatus[\"building\"] = \"building\";\n TrainingSessionStatus[\"prepared\"] = \"prepared\";\n TrainingSessionStatus[\"processing\"] = \"processing\";\n TrainingSessionStatus[\"completed\"] = \"completed\";\n TrainingSessionStatus[\"cancelled\"] = \"cancelled\";\n TrainingSessionStatus[\"failed\"] = \"failed\";\n})(TrainingSessionStatus || (TrainingSessionStatus = {}));\n//# sourceMappingURL=training.js.map","export var TransientTokenType;\n(function (TransientTokenType) {\n TransientTokenType[\"userInvite\"] = \"user-invite\";\n TransientTokenType[\"migration\"] = \"migration\";\n})(TransientTokenType || (TransientTokenType = {}));\n//# sourceMappingURL=transient-tokens.js.map","export const UserRefPopulate = \"id name email picture\";\nexport var Datacenters;\n(function (Datacenters) {\n Datacenters[\"aws\"] = \"aws\";\n Datacenters[\"gcp\"] = \"gcp\";\n Datacenters[\"azure\"] = \"azure\";\n})(Datacenters || (Datacenters = {}));\nexport var BillingMethod;\n(function (BillingMethod) {\n BillingMethod[\"stripe\"] = \"stripe\";\n BillingMethod[\"invoice\"] = \"invoice\";\n})(BillingMethod || (BillingMethod = {}));\nexport var AccountType;\n(function (AccountType) {\n AccountType[\"vertesia\"] = \"vertesia\";\n AccountType[\"partner\"] = \"partner\";\n AccountType[\"free\"] = \"free\";\n AccountType[\"customer\"] = \"customer\";\n AccountType[\"unknown\"] = \"unknown\";\n})(AccountType || (AccountType = {}));\nexport const AccountRefPopulate = \"id name\";\n//# sourceMappingURL=user.js.map","export var ApiVersions;\n(function (ApiVersions) {\n ApiVersions[ApiVersions[\"COMPLETION_RESULT_V1\"] = 20250925] = \"COMPLETION_RESULT_V1\";\n ApiVersions[ApiVersions[\"DOWNLOAD_URL_NO_MIME_TYPE_V1\"] = 20260210] = \"DOWNLOAD_URL_NO_MIME_TYPE_V1\";\n})(ApiVersions || (ApiVersions = {}));\n//# sourceMappingURL=versions.js.map","/**\n * Agent Observability Telemetry Types\n *\n * These types define the event-based model for agent observability.\n */\n// ============================================================================\n// Enums\n// ============================================================================\n/**\n * Types of telemetry events\n */\nexport var AgentEventType;\n(function (AgentEventType) {\n AgentEventType[\"AgentRunStarted\"] = \"agent_run_started\";\n AgentEventType[\"AgentRunCompleted\"] = \"agent_run_completed\";\n AgentEventType[\"LlmCall\"] = \"llm_call\";\n AgentEventType[\"ToolCall\"] = \"tool_call\";\n})(AgentEventType || (AgentEventType = {}));\n/**\n * Types of LLM calls in a conversation\n */\nexport var LlmCallType;\n(function (LlmCallType) {\n /** Initial conversation start */\n LlmCallType[\"Start\"] = \"start\";\n /** Resuming with tool results */\n LlmCallType[\"ResumeTools\"] = \"resume_tools\";\n /** Resuming with user message */\n LlmCallType[\"ResumeUser\"] = \"resume_user\";\n /** Checkpoint resume (after conversation summarization) */\n LlmCallType[\"Checkpoint\"] = \"checkpoint\";\n /** Nested interaction call from within tools */\n LlmCallType[\"NestedInteraction\"] = \"nested_interaction\";\n})(LlmCallType || (LlmCallType = {}));\n/**\n * Types of tools that can be called\n */\nexport var TelemetryToolType;\n(function (TelemetryToolType) {\n /** Built-in tools (e.g., plan, search) */\n TelemetryToolType[\"Builtin\"] = \"builtin\";\n /** Interaction-based tools */\n TelemetryToolType[\"Interaction\"] = \"interaction\";\n /** Remote/MCP tools */\n TelemetryToolType[\"Remote\"] = \"remote\";\n /** Skill tools */\n TelemetryToolType[\"Skill\"] = \"skill\";\n})(TelemetryToolType || (TelemetryToolType = {}));\n//# sourceMappingURL=workflow-analytics.js.map","/**\n * Prompt transformer preset for template files with frontmatter\n * Supports .jst, .hbs, and plain text files\n */\nimport { z } from 'zod';\nimport { parseFrontmatter } from '../parsers/frontmatter.js';\nimport path from 'path';\nimport { TemplateType } from '@vertesia/common';\nimport { PromptRole } from '@llumiverse/common';\n/**\n * Re-export types for backwards compatibility\n */\nexport { TemplateType, PromptRole };\n/**\n * Zod schema for prompt frontmatter validation\n */\nconst PromptFrontmatterSchema = z.object({\n // Required fields\n role: z.nativeEnum(PromptRole, {\n errorMap: () => ({ message: 'Role must be one of: safety, system, user, assistant, negative' })\n }),\n // Optional fields\n content_type: z.nativeEnum(TemplateType).optional(),\n schema: z.string().optional(),\n name: z.string().optional(),\n externalId: z.string().optional(),\n}).strict();\n/**\n * MUST be kept in sync with @vertesia/common InCodePrompt\n * Zod schema for prompt definition\n */\nexport const PromptDefinitionSchema = z.object({\n role: z.nativeEnum(PromptRole),\n content: z.string(),\n content_type: z.nativeEnum(TemplateType),\n schema: z.any().optional(),\n name: z.string().optional(),\n externalId: z.string().optional(),\n});\n/**\n * Normalize schema path for import\n * - Adds './' prefix if not a relative path\n * - Replaces .ts with .js\n * - Adds .js if no extension\n *\n * @param schemaPath - Original schema path from frontmatter\n * @returns Normalized path for ES module import\n */\nfunction normalizeSchemaPath(schemaPath) {\n let normalized = schemaPath.trim();\n // Add './' prefix if not already a relative path\n if (!normalized.startsWith('.')) {\n normalized = './' + normalized;\n }\n // Get the extension\n const ext = path.extname(normalized);\n if (ext === '.ts') {\n // Replace .ts with .js\n normalized = normalized.slice(0, -3) + '.js';\n }\n else if (!ext) {\n // No extension, add .js\n normalized = normalized + '.js';\n }\n // If extension is already .js or something else, leave as is\n return normalized;\n}\n/**\n * Infer content type from file extension\n *\n * @param filePath - Path to the prompt file\n * @returns Inferred content type\n */\nfunction inferContentType(filePath) {\n const ext = path.extname(filePath).toLowerCase();\n switch (ext) {\n case '.jst':\n return TemplateType.jst;\n case '.hbs':\n return TemplateType.handlebars;\n default:\n return TemplateType.text;\n }\n}\n/**\n * Build a PromptDefinition from frontmatter and content\n *\n * @param frontmatter - Parsed frontmatter object\n * @param content - Prompt content (body of the file)\n * @param filePath - Path to the prompt file (for content type inference)\n * @returns Prompt definition object and optional imports\n */\nfunction buildPromptDefinition(frontmatter, content, filePath) {\n // Determine content type from frontmatter or file extension\n const content_type = frontmatter.content_type || inferContentType(filePath);\n const prompt = {\n role: frontmatter.role,\n content,\n content_type,\n };\n // Add optional fields\n if (frontmatter.name) {\n prompt.name = frontmatter.name;\n }\n if (frontmatter.externalId) {\n prompt.externalId = frontmatter.externalId;\n }\n // Handle schema import if specified\n let imports;\n let schemaImportName;\n if (frontmatter.schema) {\n const normalizedPath = normalizeSchemaPath(frontmatter.schema);\n schemaImportName = '__promptSchema';\n imports = [`import ${schemaImportName} from '${normalizedPath}';`];\n }\n return { prompt, imports, schemaImportName };\n}\n/**\n * Prompt transformer preset\n * Transforms template files with ?prompt suffix into prompt definition objects\n *\n * Supported file types:\n * - .jst (JavaScript template literals) → content_type: 'jst'\n * - .hbs (Handlebars templates) → content_type: 'handlebars'\n * - .txt or other → content_type: 'text'\n *\n * @example\n * ```typescript\n * import PROMPT from './prompt.hbs?prompt';\n * // PROMPT is an InCodePrompt object\n * ```\n */\nexport const promptTransformer = {\n pattern: /\\?prompt$/,\n schema: PromptDefinitionSchema,\n transform: (content, filePath) => {\n const { frontmatter, content: promptContent } = parseFrontmatter(content);\n // Validate frontmatter\n const frontmatterValidation = PromptFrontmatterSchema.safeParse(frontmatter);\n if (!frontmatterValidation.success) {\n const errors = frontmatterValidation.error.errors\n .map((err) => {\n const path = err.path.length > 0 ? err.path.join('.') : 'frontmatter';\n return ` - ${path}: ${err.message}`;\n })\n .join('\\n');\n throw new Error(`Invalid frontmatter in ${filePath}:\\n${errors}`);\n }\n // Build prompt definition\n const { prompt, imports, schemaImportName } = buildPromptDefinition(frontmatter, promptContent, filePath);\n // If schema is specified, generate custom code with schema reference\n if (schemaImportName) {\n // Build the code manually to avoid JSON.stringify issues with schema reference\n const lines = [\n 'export default {',\n ` role: \"${prompt.role}\",`,\n ` content: ${JSON.stringify(prompt.content)},`,\n ` content_type: \"${prompt.content_type}\",`,\n ` schema: ${schemaImportName}`,\n ];\n if (prompt.name) {\n lines.splice(4, 0, ` name: ${JSON.stringify(prompt.name)},`);\n }\n if (prompt.externalId) {\n lines.splice(4, 0, ` externalId: ${JSON.stringify(prompt.externalId)},`);\n }\n lines.push('};');\n const code = lines.join('\\n');\n return {\n data: prompt,\n imports,\n code,\n };\n }\n // Standard case without schema\n return {\n data: prompt,\n };\n }\n};\n//# sourceMappingURL=prompt.js.map"],"names":["path"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"build-tools.js","sources":["esm/utils/asset-copy.js","esm/utils/widget-compiler.js","esm/plugin.js","esm/parsers/frontmatter.js","esm/utils/asset-discovery.js","esm/presets/skill.js","esm/presets/skill-collection.js","esm/utils/template-asset-discovery.js","esm/presets/template.js","esm/presets/template-collection.js","esm/presets/raw.js","../../common/lib/esm/access-control.js","../../common/lib/esm/apikey.js","../../common/lib/esm/interaction.js","../../common/lib/esm/data-platform.js","../../../llumiverse/common/lib/esm/types.js","../../../llumiverse/common/lib/esm/options/fallback.js","../../../llumiverse/common/lib/esm/options/vertexai.js","../../common/lib/esm/environment.js","../../common/lib/esm/integrations.js","../../common/lib/esm/meters.js","../../common/lib/esm/project.js","../../common/lib/esm/prompt.js","../../common/lib/esm/refs.js","../../common/lib/esm/store/collections.js","../../common/lib/esm/store/store.js","../../common/lib/esm/store/workflow.js","../../common/lib/esm/training.js","../../common/lib/esm/transient-tokens.js","../../common/lib/esm/user.js","../../common/lib/esm/versions.js","../../common/lib/esm/workflow-analytics.js","esm/presets/prompt.js"],"sourcesContent":["/**\n * Utilities for copying asset files during build\n */\nimport { copyFileSync, mkdirSync } from 'node:fs';\nimport path from 'node:path';\n/**\n * Ensure a directory exists, creating it recursively if needed\n */\nfunction ensureDirectory(dirPath) {\n try {\n mkdirSync(dirPath, { recursive: true });\n }\n catch (error) {\n // Ignore if directory already exists\n if (error.code !== 'EEXIST') {\n throw error;\n }\n }\n}\n/**\n * Copy an asset file to its destination\n *\n * @param asset - Asset file information\n * @param assetsRoot - Root directory for assets\n */\nexport function copyAssetFile(asset, assetsRoot) {\n const destPath = path.join(assetsRoot, asset.destPath);\n const destDir = path.dirname(destPath);\n // Ensure destination directory exists\n ensureDirectory(destDir);\n // Copy file\n try {\n copyFileSync(asset.sourcePath, destPath);\n }\n catch (error) {\n throw new Error(`Failed to copy asset from ${asset.sourcePath} to ${destPath}: ${error instanceof Error ? error.message : String(error)}`);\n }\n}\n/**\n * Copy multiple asset files\n *\n * @param assets - Array of asset files to copy\n * @param assetsRoot - Root directory for assets\n * @returns Number of files copied\n */\nexport function copyAssets(assets, assetsRoot) {\n let copied = 0;\n for (const asset of assets) {\n copyAssetFile(asset, assetsRoot);\n copied++;\n }\n return copied;\n}\n//# sourceMappingURL=asset-copy.js.map","/**\n * Widget compilation utility using Rollup\n */\nimport { rollup } from 'rollup';\nimport path from 'node:path';\n/**\n * Default external dependencies for widgets\n */\nconst DEFAULT_EXTERNALS = [\n 'react',\n 'react-dom',\n 'react/jsx-runtime',\n 'react/jsx-dev-runtime',\n 'react-dom/client'\n];\n/**\n * Compile widgets using Rollup\n *\n * @param widgets - Array of widget metadata to compile\n * @param outputDir - Directory to write compiled widgets\n * @param config - Widget compilation configuration\n * @returns Number of widgets compiled\n */\nexport async function compileWidgets(widgets, outputDir, config = {}) {\n if (widgets.length === 0) {\n return 0;\n }\n const { external = DEFAULT_EXTERNALS, tsconfig = './tsconfig.json', typescript: typescriptOptions = {}, minify = false } = config;\n // Build each widget separately to get individual bundles\n const buildPromises = widgets.map(async (widget) => {\n // Dynamically import plugins - use any to bypass TypeScript module resolution issues\n const typescript = (await import('@rollup/plugin-typescript')).default;\n const nodeResolve = (await import('@rollup/plugin-node-resolve')).default;\n const commonjs = (await import('@rollup/plugin-commonjs')).default;\n const plugins = [\n typescript({\n tsconfig,\n declaration: false,\n sourceMap: true,\n ...typescriptOptions\n }),\n nodeResolve({\n browser: true,\n preferBuiltins: false,\n extensions: ['.tsx', '.ts', '.jsx', '.js']\n }),\n commonjs()\n ];\n // Add minification if requested\n if (minify) {\n const { terser } = await import('rollup-plugin-terser');\n plugins.push(terser({\n compress: {\n drop_console: false\n }\n }));\n }\n const rollupConfig = {\n input: widget.path,\n output: {\n file: path.join(outputDir, `${widget.name}.js`),\n format: 'es',\n sourcemap: true,\n inlineDynamicImports: true\n },\n external,\n plugins\n };\n const bundle = await rollup(rollupConfig);\n await bundle.write(rollupConfig.output);\n await bundle.close();\n });\n await Promise.all(buildPromises);\n return widgets.length;\n}\n//# sourceMappingURL=widget-compiler.js.map","/**\n * Core Rollup plugin implementation for transforming imports\n */\nimport { readFileSync } from 'node:fs';\nimport path from 'node:path';\nimport { copyAssets } from './utils/asset-copy.js';\nimport { compileWidgets } from './utils/widget-compiler.js';\n/**\n * Creates a Rollup plugin that transforms imports based on configured rules\n */\nexport function vertesiaImportPlugin(config) {\n const { transformers, assetsDir = './dist', widgetConfig } = config;\n if (!transformers || transformers.length === 0) {\n throw new Error('vertesiaImportPlugin: At least one transformer must be configured');\n }\n // Track assets to copy and widgets to compile\n const assetsToProcess = [];\n const widgetsToCompile = [];\n const shouldCopyAssets = assetsDir !== false;\n const shouldCompileWidgets = widgetConfig !== undefined && assetsDir !== false;\n return {\n name: 'vertesia-import-plugin',\n /**\n * Resolve import IDs to handle pattern-based imports\n */\n resolveId(source, importer) {\n // Check if any transformer pattern matches\n for (const transformer of transformers) {\n if (transformer.pattern.test(source)) {\n // Handle relative imports\n if (source.startsWith('.') && importer) {\n const cleanSource = source.replace(transformer.pattern, '');\n // Strip query parameters from importer to get the file path\n const cleanImporter = importer.indexOf('?') >= 0\n ? importer.substring(0, importer.indexOf('?'))\n : importer;\n // Always use dirname to get the directory containing the importer\n const baseDir = path.dirname(cleanImporter);\n const resolved = path.resolve(baseDir, cleanSource);\n // Return with the pattern suffix to identify it in load\n const suffix = source.match(transformer.pattern)?.[0] || '';\n return resolved + suffix;\n }\n return source;\n }\n }\n return null; // Let other plugins handle it\n },\n /**\n * Load and transform the file content\n */\n async load(id) {\n // Find matching transformer\n let matchedTransformer;\n let cleanId = id;\n for (const transformer of transformers) {\n if (transformer.pattern.test(id)) {\n matchedTransformer = transformer;\n // Remove query parameters to get actual file path\n // For example: '/path/file.md?skill' -> '/path/file.md'\n // '/path/file.html?raw' -> '/path/file.html'\n const queryIndex = id.indexOf('?');\n cleanId = queryIndex >= 0 ? id.substring(0, queryIndex) : id;\n break;\n }\n }\n if (!matchedTransformer) {\n return null; // Not for us\n }\n try {\n // Read file content (skip for virtual transforms)\n const content = matchedTransformer.virtual\n ? ''\n : readFileSync(cleanId, 'utf-8');\n // Transform the content\n const result = await matchedTransformer.transform(content, cleanId);\n // Collect assets if any\n if (result.assets && shouldCopyAssets) {\n assetsToProcess.push(...result.assets);\n }\n // Collect widgets if any\n if (result.widgets && shouldCompileWidgets) {\n widgetsToCompile.push(...result.widgets);\n }\n // Validate if schema provided\n if (matchedTransformer.schema) {\n const validation = matchedTransformer.schema.safeParse(result.data);\n if (!validation.success) {\n const errors = validation.error.errors\n .map((err) => ` - ${err.path.join('.')}: ${err.message}`)\n .join('\\n');\n throw new Error(`Validation failed for ${id}:\\n${errors}`);\n }\n }\n // Generate code\n const imports = result.imports ? result.imports.join('\\n') + '\\n\\n' : '';\n if (result.code) {\n // Custom code provided - prepend imports\n return imports + result.code;\n }\n else {\n // Default: export data (escape if string, otherwise stringify as JSON)\n const dataJson = JSON.stringify(result.data, null, 2);\n return `${imports}export default ${dataJson};`;\n }\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n this.error(`Failed to transform ${id}: ${message}`);\n }\n },\n /**\n * Copy assets and compile widgets after all modules are loaded\n */\n async buildEnd() {\n // Copy script assets\n if (shouldCopyAssets && assetsToProcess.length > 0) {\n try {\n const copied = copyAssets(assetsToProcess, assetsDir);\n console.log(`Copied ${copied} asset file(s) to ${assetsDir}`);\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n this.warn(`Failed to copy assets: ${message}`);\n }\n }\n // Compile widgets\n if (shouldCompileWidgets && widgetsToCompile.length > 0) {\n try {\n const widgetsDir = config.widgetsDir || 'widgets';\n const outputDir = path.join(assetsDir, widgetsDir);\n console.log(`Compiling ${widgetsToCompile.length} widget(s)...`);\n const compiled = await compileWidgets(widgetsToCompile, outputDir, widgetConfig);\n console.log(`Compiled ${compiled} widget(s) to ${outputDir}`);\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n this.error(`Failed to compile widgets: ${message}`);\n }\n }\n }\n };\n}\n//# sourceMappingURL=plugin.js.map","/**\n * Frontmatter parser utility using gray-matter\n */\nimport matter from 'gray-matter';\n/**\n * Parse YAML frontmatter from markdown content\n *\n * @param content - Raw markdown content with optional frontmatter\n * @returns Parsed frontmatter and content\n */\nexport function parseFrontmatter(content) {\n const result = matter(content);\n return {\n frontmatter: result.data,\n content: result.content,\n original: content\n };\n}\n//# sourceMappingURL=frontmatter.js.map","/**\n * Utilities for discovering asset files (scripts, widgets) in skill directories\n */\nimport { readdirSync, statSync } from 'node:fs';\nimport path from 'node:path';\n/**\n * Check if a file exists and is a regular file\n */\nfunction isFile(filePath) {\n try {\n return statSync(filePath).isFile();\n }\n catch {\n return false;\n }\n}\n/**\n * Get all files in a directory (non-recursive)\n */\nfunction getFilesInDirectory(dirPath) {\n try {\n return readdirSync(dirPath).filter(file => {\n const fullPath = path.join(dirPath, file);\n return isFile(fullPath);\n });\n }\n catch {\n return [];\n }\n}\n/**\n * Check if a file is a script file (.js or .py)\n */\nfunction isScriptFile(fileName) {\n return /\\.(js|py)$/.test(fileName);\n}\n/**\n * Check if a file is a widget file (.tsx)\n */\nfunction isWidgetFile(fileName) {\n return /\\.tsx$/.test(fileName);\n}\n/**\n * Extract widget name from .tsx file (remove extension)\n */\nfunction getWidgetName(fileName) {\n return fileName.replace(/\\.tsx$/, '');\n}\n/**\n * Discover assets (scripts and widgets) in a skill directory\n *\n * @param skillFilePath - Absolute path to the skill.md file\n * @param options - Asset discovery options\n * @returns Discovered assets and metadata\n */\nexport function discoverSkillAssets(skillFilePath, options = {}) {\n const skillDir = path.dirname(skillFilePath);\n const files = getFilesInDirectory(skillDir);\n const scripts = [];\n const widgets = [];\n const widgetMetadata = [];\n const assetFiles = [];\n const scriptsDir = options.scriptsDir || 'scripts';\n for (const file of files) {\n const fullPath = path.join(skillDir, file);\n if (isScriptFile(file)) {\n // Script file (.js or .py)\n scripts.push(file);\n assetFiles.push({\n sourcePath: fullPath,\n destPath: path.join(scriptsDir, file),\n type: 'script'\n });\n }\n else if (isWidgetFile(file)) {\n // Widget file (.tsx)\n const widgetName = getWidgetName(file);\n widgets.push(widgetName);\n widgetMetadata.push({\n name: widgetName,\n path: fullPath\n });\n // Note: We don't add widget .tsx files to assetFiles\n // Widgets are compiled by the plugin if widgetConfig is provided\n }\n }\n return {\n scripts,\n widgets,\n widgetMetadata,\n assetFiles\n };\n}\n//# sourceMappingURL=asset-discovery.js.map","/**\n * Skill transformer preset for markdown files with frontmatter\n */\nimport path from 'node:path';\nimport { existsSync } from 'node:fs';\nimport { z } from 'zod';\nimport { parseFrontmatter } from '../parsers/frontmatter.js';\nimport { discoverSkillAssets } from '../utils/asset-discovery.js';\n/**\n * Context triggers for auto-injection of skills (for frontmatter validation)\n */\nconst SkillContextTriggersFrontmatterSchema = z.object({\n keywords: z.array(z.string()).optional(),\n tool_names: z.array(z.string()).optional(),\n data_patterns: z.array(z.string()).optional()\n}).strict();\n/**\n * Context triggers for auto-injection of skills (for output validation)\n */\nconst SkillContextTriggersSchema = z.object({\n keywords: z.array(z.string()).optional(),\n tool_names: z.array(z.string()).optional(),\n data_patterns: z.array(z.string()).optional()\n}).optional();\n/**\n * Execution configuration for skills that need code execution (for frontmatter validation)\n */\nconst SkillExecutionFrontmatterSchema = z.object({\n language: z.string(),\n packages: z.array(z.string()).optional(),\n system_packages: z.array(z.string()).optional(),\n template: z.string().optional()\n}).strict();\n/**\n * Execution configuration for skills that need code execution (for output validation)\n */\nconst SkillExecutionSchema = z.object({\n language: z.string(),\n packages: z.array(z.string()).optional(),\n system_packages: z.array(z.string()).optional(),\n template: z.string().optional()\n}).optional();\n/**\n * Zod schema for skill frontmatter validation\n * This validates the YAML frontmatter before transformation\n * Supports both flat and nested structures\n */\nconst SkillFrontmatterSchema = z.object({\n // Required fields\n name: z.string().min(1, 'Skill name is required'),\n description: z.string().min(1, 'Skill description is required'),\n // Optional fields\n title: z.string().optional(),\n content_type: z.enum(['md', 'jst']).optional(),\n // Flat structure fields (legacy)\n keywords: z.array(z.string()).optional(),\n tools: z.array(z.string()).optional(),\n data_patterns: z.array(z.string()).optional(),\n language: z.string().optional(),\n packages: z.array(z.string()).optional(),\n system_packages: z.array(z.string()).optional(),\n // Nested structure fields\n context_triggers: SkillContextTriggersFrontmatterSchema.optional(),\n execution: SkillExecutionFrontmatterSchema.optional(),\n related_tools: z.array(z.string()).optional(),\n input_schema: z.object({\n type: z.literal('object'),\n properties: z.record(z.any()).optional(),\n required: z.array(z.string()).optional()\n }).optional(),\n // Asset fields (auto-discovered but can be overridden)\n scripts: z.array(z.string()).optional(),\n widgets: z.array(z.string()).optional()\n}).strict();\n/**\n * MUST be kept in sync with @vertesia/tools-sdk SkillDefinition\n * Zod schema for skill definition\n * This validates the structure of skill objects generated from markdown\n * Matches the SkillDefinition interface from @vertesia/tools-sdk\n *\n * Note: The isEnabled property is not included in this schema because Zod cannot\n * properly validate function signatures. It will be type-checked by TypeScript instead.\n */\nexport const SkillDefinitionSchema = z.object({\n name: z.string().min(1, 'Skill name is required'),\n title: z.string().optional(),\n description: z.string().min(1, 'Skill description is required'),\n instructions: z.string(),\n content_type: z.enum(['md', 'jst']),\n input_schema: z.object({\n type: z.literal('object'),\n properties: z.record(z.any()).optional(),\n required: z.array(z.string()).optional()\n }).optional(),\n context_triggers: SkillContextTriggersSchema,\n execution: SkillExecutionSchema,\n related_tools: z.array(z.string()).optional(),\n scripts: z.array(z.string()).optional(),\n widgets: z.array(z.string()).optional()\n}).passthrough();\n/**\n * Schema for validating properties exported from properties.ts\n * This is a partial schema - allows any subset of SkillDefinition fields\n *\n * Note: Function properties like isEnabled cannot be validated by Zod for their signatures.\n * Zod will only check that they are functions, not their specific parameter/return types.\n * Use TypeScript for proper type checking of function signatures.\n */\nexport const SkillPropertiesSchema = SkillDefinitionSchema.partial().passthrough();\n/**\n * Build a SkillDefinition from frontmatter and markdown content.\n * This mirrors the logic in @vertesia/tools-sdk parseSkillFile function.\n *\n * Supports two frontmatter structures:\n *\n * 1. Flat structure (matches parseSkillFile in tools-sdk):\n * keywords: [...]\n * tools: [...]\n * language: python\n * packages: [...]\n *\n * 2. Nested structure (for more explicit YAML):\n * context_triggers:\n * keywords: [...]\n * tool_names: [...]\n * execution:\n * language: python\n * packages: [...]\n * related_tools: [...]\n *\n * @param frontmatter - Parsed frontmatter object\n * @param instructions - Markdown content (body of the file)\n * @param contentType - Content type ('md' or 'jst')\n * @param widgets - Discovered widget names\n * @param scripts - Discovered script names\n * @returns Skill definition object\n */\nfunction buildSkillDefinition(frontmatter, instructions, contentType, widgets, scripts) {\n const skill = {\n name: frontmatter.name,\n title: frontmatter.title,\n description: frontmatter.description,\n instructions,\n content_type: contentType,\n widgets: widgets.length > 0 ? widgets : undefined,\n scripts: scripts.length > 0 ? scripts : undefined,\n };\n // Build context triggers - support both flat and nested structure\n // Nested: context_triggers: { keywords: [...], tool_names: [...] }\n // Flat: keywords: [...], tools: [...]\n const contextTriggers = frontmatter.context_triggers;\n const hasNestedTriggers = contextTriggers && typeof contextTriggers === 'object';\n const hasFlatTriggers = frontmatter.keywords || frontmatter.tools || frontmatter.data_patterns;\n if (hasNestedTriggers || hasFlatTriggers) {\n skill.context_triggers = {\n keywords: hasNestedTriggers ? contextTriggers.keywords : frontmatter.keywords,\n tool_names: hasNestedTriggers ? contextTriggers.tool_names : frontmatter.tools,\n data_patterns: hasNestedTriggers ? contextTriggers.data_patterns : frontmatter.data_patterns,\n };\n }\n // Build execution config - support both flat and nested structure\n const execution = frontmatter.execution;\n const hasNestedExecution = execution && typeof execution === 'object';\n const hasFlatExecution = frontmatter.language;\n if (hasNestedExecution || hasFlatExecution) {\n skill.execution = {\n language: hasNestedExecution ? execution.language : frontmatter.language,\n packages: hasNestedExecution ? execution.packages : frontmatter.packages,\n system_packages: hasNestedExecution ? execution.system_packages : frontmatter.system_packages,\n };\n // Extract code template from instructions if present\n const codeBlockMatch = instructions.match(/```(?:python|javascript|typescript|js|ts|py)\\n([\\s\\S]*?)```/);\n if (codeBlockMatch) {\n skill.execution.template = codeBlockMatch[1].trim();\n }\n }\n // Related tools - support both direct field and from tools field\n if (frontmatter.related_tools) {\n skill.related_tools = frontmatter.related_tools;\n }\n else if (frontmatter.tools && !hasNestedTriggers) {\n // If tools is not part of context_triggers, use it as related_tools\n skill.related_tools = frontmatter.tools;\n }\n // Input schema from frontmatter\n if (frontmatter.input_schema) {\n skill.input_schema = frontmatter.input_schema;\n }\n return skill;\n}\n/**\n * Skill transformer preset\n * Transforms markdown files with ?skill suffix OR SKILL.md files into skill definition objects\n *\n * Matches:\n * - Files with ?skill suffix: ./my-skill.md?skill\n * - SKILL.md files: ./my-skill/SKILL.md\n *\n * Runtime Properties:\n * - Supports properties.ts file in skill directory for runtime properties (functions, overrides)\n * - Properties from properties.ts override those from frontmatter\n * - See README.md for detailed usage examples\n *\n * @example\n * ```typescript\n * import skill1 from './my-skill.md?skill';\n * import skill2 from './my-skill/SKILL.md';\n * // Both are SkillDefinition objects\n * ```\n */\nexport const skillTransformer = {\n pattern: /(\\.md\\?skill$|\\/SKILL\\.md$)/,\n schema: SkillDefinitionSchema,\n transform: (content, filePath) => {\n const { frontmatter, content: markdown } = parseFrontmatter(content);\n // Validate frontmatter first to catch unknown properties\n const frontmatterValidation = SkillFrontmatterSchema.safeParse(frontmatter);\n if (!frontmatterValidation.success) {\n const errors = frontmatterValidation.error.errors\n .map((err) => {\n const pathStr = err.path.length > 0 ? err.path.join('.') : 'frontmatter';\n return ` - ${pathStr}: ${err.message}`;\n })\n .join('\\n');\n throw new Error(`Invalid frontmatter in ${filePath}:\\n${errors}`);\n }\n // Determine content type from frontmatter or file extension\n const content_type = frontmatter.content_type || 'md';\n // Discover assets (scripts and widgets) in the skill directory\n const assets = discoverSkillAssets(filePath);\n // Build skill definition using the same logic as parseSkillFile in tools-sdk\n const skillData = buildSkillDefinition(frontmatter, markdown, content_type, assets.widgets, assets.scripts);\n // Check if properties.ts exists in the skill directory\n const skillDir = path.dirname(filePath);\n const propertiesPath = path.join(skillDir, 'properties.ts');\n const hasProperties = existsSync(propertiesPath);\n // If properties.ts exists, generate custom code with import and merge\n // Rollup will handle transpiling properties.ts to properties.js\n if (hasProperties) {\n const skillDataJson = JSON.stringify(skillData, null, 2);\n const code = `import properties from './properties.js';\n\n// Runtime validation for function properties\nif ('isEnabled' in properties && typeof properties.isEnabled !== 'function') {\n throw new Error('properties.isEnabled must be a function, got ' + typeof properties.isEnabled);\n}\n\nconst skill = ${skillDataJson};\n\nexport default { ...skill, ...properties };\n`;\n return {\n data: skillData,\n assets: assets.assetFiles,\n widgets: assets.widgetMetadata,\n code\n };\n }\n return {\n data: skillData,\n assets: assets.assetFiles,\n widgets: assets.widgetMetadata\n };\n }\n};\n//# sourceMappingURL=skill.js.map","/**\n * Skill collection transformer for directory-based skill imports\n * Scans a directory for subdirectories containing SKILL.md files\n */\nimport { readdirSync, statSync, existsSync } from 'node:fs';\nimport path from 'node:path';\n/**\n * Skill collection transformer preset\n * Transforms directory imports with ?skills suffix into an array of skill imports\n *\n * Matches:\n * - ./all?skills (recommended - generates all.js in the directory)\n * - ./_skills?skills (generates _skills.js in the directory)\n * - Any path ending with a filename and ?skills\n *\n * NOTE: A filename before ?skills is REQUIRED to avoid naming conflicts.\n * The filename becomes the output module name.\n *\n * @example\n * ```typescript\n * import skills from './all?skills';\n * // Scans current directory for subdirectories with SKILL.md\n * // Generates all.js containing array of all skills\n * ```\n */\nexport const skillCollectionTransformer = {\n pattern: /\\/[^/?]+\\?skills$/,\n virtual: true, // Indicates this doesn't transform a real file\n transform: (_content, filePath) => {\n // Remove ?skills suffix and the filename to get directory path\n // Example: /path/code/all?skills -> /path/code/all -> /path/code/\n const pathWithoutQuery = filePath.replace(/\\?skills$/, '');\n const dirPath = path.dirname(pathWithoutQuery);\n if (!existsSync(dirPath)) {\n throw new Error(`Directory not found: ${dirPath}`);\n }\n if (!statSync(dirPath).isDirectory()) {\n throw new Error(`Not a directory: ${dirPath}`);\n }\n // Scan for subdirectories containing SKILL.md\n const entries = readdirSync(dirPath);\n const imports = [];\n const names = [];\n for (const entry of entries) {\n const entryPath = path.join(dirPath, entry);\n try {\n if (statSync(entryPath).isDirectory()) {\n const skillFile = path.join(entryPath, 'SKILL.md');\n if (existsSync(skillFile)) {\n // Generate unique identifier from directory name\n const identifier = `Skill_${entry.replace(/[^a-zA-Z0-9_]/g, '_')}`;\n imports.push(`import ${identifier} from './${entry}/SKILL.md';`);\n names.push(identifier);\n }\n }\n }\n catch (err) {\n // Skip entries that can't be read\n continue;\n }\n }\n if (names.length === 0) {\n console.warn(`No SKILL.md files found in subdirectories of ${dirPath}`);\n }\n // Generate code that imports all skills and exports as array\n const code = [\n ...imports,\n '',\n `export default [${names.join(', ')}];`\n ].join('\\n');\n return {\n data: null, // Not used when custom code is provided\n code\n };\n }\n};\n//# sourceMappingURL=skill-collection.js.map","/**\n * Utilities for discovering asset files in template directories\n */\nimport { readdirSync, statSync } from 'node:fs';\nimport path from 'node:path';\n/**\n * Files to exclude from template asset discovery\n * (source files and the template definition itself)\n */\nconst EXCLUDED_PATTERNS = [\n /^TEMPLATE\\.md$/,\n /\\.ts$/,\n /\\.js$/,\n];\nfunction isExcluded(fileName) {\n return EXCLUDED_PATTERNS.some(p => p.test(fileName));\n}\n/**\n * Discover asset files in a template directory.\n * All files except TEMPLATE.md, *.ts, and *.js are considered assets.\n *\n * @param templateFilePath - Absolute path to the TEMPLATE.md file\n * @param templatePath - The template path segment (e.g., \"examples/report\")\n * @returns Discovered assets and metadata\n */\nexport function discoverTemplateAssets(templateFilePath, templatePath) {\n const templateDir = path.dirname(templateFilePath);\n const fileNames = [];\n const assetFiles = [];\n let files;\n try {\n files = readdirSync(templateDir).filter(file => {\n try {\n return statSync(path.join(templateDir, file)).isFile();\n }\n catch {\n return false;\n }\n });\n }\n catch {\n files = [];\n }\n for (const file of files) {\n if (isExcluded(file)) {\n continue;\n }\n fileNames.push(file);\n assetFiles.push({\n sourcePath: path.join(templateDir, file),\n destPath: path.join('templates', templatePath, file),\n type: 'template',\n });\n }\n return { fileNames, assetFiles };\n}\n//# sourceMappingURL=template-asset-discovery.js.map","/**\n * Template transformer preset for markdown files with frontmatter\n */\nimport path from 'node:path';\nimport { z } from 'zod';\nimport { parseFrontmatter } from '../parsers/frontmatter.js';\nimport { discoverTemplateAssets } from '../utils/template-asset-discovery.js';\n/**\n * Zod schema for template frontmatter validation.\n * Only includes fields authored by the user.\n * The name and id are inferred from the directory structure.\n */\nconst TemplateFrontmatterSchema = z.object({\n title: z.string().optional(),\n description: z.string().min(1, 'Template description is required'),\n tags: z.array(z.string()).optional(),\n type: z.enum(['presentation', 'document']),\n}).strict();\n/**\n * MUST be kept in sync with @vertesia/tools-sdk RenderingTemplateDefinition\n * Zod schema for template definition\n */\nexport const RenderingTemplateDefinitionSchema = z.object({\n id: z.string().min(1, 'Template id is required'),\n name: z.string().min(1, 'Template name is required'),\n title: z.string().optional(),\n description: z.string().min(1, 'Template description is required'),\n instructions: z.string(),\n tags: z.array(z.string()).optional(),\n type: z.enum(['presentation', 'document']),\n assets: z.array(z.string()),\n}).passthrough();\n/**\n * Derive the template path segments from the file path.\n *\n * Example: .../templates/examples/report/TEMPLATE.md\n * → category: \"examples\", name: \"report\", relative: \"examples/report\"\n */\nfunction deriveTemplatePathInfo(filePath) {\n const templateDir = path.dirname(filePath);\n const templateName = path.basename(templateDir);\n const collectionDir = path.dirname(templateDir);\n const category = path.basename(collectionDir);\n return { category, templateName, relative: `${category}/${templateName}` };\n}\n/**\n * Template transformer preset\n * Transforms markdown files with ?template suffix OR TEMPLATE.md files into template definition objects\n *\n * Matches:\n * - Files with ?template suffix: ./my-template.md?template\n * - TEMPLATE.md files: ./my-template/TEMPLATE.md\n *\n * @example\n * ```typescript\n * import template1 from './my-template.md?template';\n * import template2 from './my-template/TEMPLATE.md';\n * // Both are RenderingTemplateDefinition objects\n * ```\n */\nexport const templateTransformer = {\n pattern: /(\\.md\\?template$|\\/TEMPLATE\\.md$)/,\n schema: RenderingTemplateDefinitionSchema,\n transform: (content, filePath) => {\n const { frontmatter, content: markdown } = parseFrontmatter(content);\n // Validate frontmatter\n const frontmatterValidation = TemplateFrontmatterSchema.safeParse(frontmatter);\n if (!frontmatterValidation.success) {\n const errors = frontmatterValidation.error.errors\n .map((err) => {\n const pathStr = err.path.length > 0 ? err.path.join('.') : 'frontmatter';\n return ` - ${pathStr}: ${err.message}`;\n })\n .join('\\n');\n throw new Error(`Invalid frontmatter in ${filePath}:\\n${errors}`);\n }\n // Derive template path from directory structure\n const { category, templateName, relative: templatePath } = deriveTemplatePathInfo(filePath);\n // Discover asset files in the template directory\n const assets = discoverTemplateAssets(filePath, templatePath);\n // Build template definition\n // Assets use absolute paths for direct server-side resolution\n const templateData = {\n id: `${category}:${templateName}`,\n name: templateName,\n title: frontmatter.title,\n description: frontmatter.description,\n instructions: markdown,\n tags: frontmatter.tags,\n type: frontmatter.type,\n assets: assets.fileNames.map(f => `/templates/${templatePath}/${f}`),\n };\n return {\n data: templateData,\n assets: assets.assetFiles,\n };\n }\n};\n//# sourceMappingURL=template.js.map","/**\n * Template collection transformer for directory-based template imports\n * Scans a directory for subdirectories containing TEMPLATE.md files\n */\nimport { readdirSync, statSync, existsSync } from 'node:fs';\nimport path from 'node:path';\n/**\n * Template collection transformer preset\n * Transforms directory imports with ?templates suffix into an array of template imports\n *\n * Matches:\n * - ./all?templates (recommended - generates all.js in the directory)\n * - Any path ending with a filename and ?templates\n *\n * NOTE: A filename before ?templates is REQUIRED to avoid naming conflicts.\n * The filename becomes the output module name.\n *\n * @example\n * ```typescript\n * import templates from './all?templates';\n * // Scans current directory for subdirectories with TEMPLATE.md\n * // Generates all.js containing array of all templates\n * ```\n */\nexport const templateCollectionTransformer = {\n pattern: /\\/[^/?]+\\?templates$/,\n virtual: true,\n transform: (_content, filePath) => {\n // Remove ?templates suffix and the filename to get directory path\n const pathWithoutQuery = filePath.replace(/\\?templates$/, '');\n const dirPath = path.dirname(pathWithoutQuery);\n if (!existsSync(dirPath)) {\n throw new Error(`Directory not found: ${dirPath}`);\n }\n if (!statSync(dirPath).isDirectory()) {\n throw new Error(`Not a directory: ${dirPath}`);\n }\n // Scan for subdirectories containing TEMPLATE.md\n const entries = readdirSync(dirPath);\n const imports = [];\n const names = [];\n for (const entry of entries) {\n const entryPath = path.join(dirPath, entry);\n try {\n if (statSync(entryPath).isDirectory()) {\n const templateFile = path.join(entryPath, 'TEMPLATE.md');\n if (existsSync(templateFile)) {\n const identifier = `Template_${entry.replace(/[^a-zA-Z0-9_]/g, '_')}`;\n imports.push(`import ${identifier} from './${entry}/TEMPLATE.md';`);\n names.push(identifier);\n }\n }\n }\n catch (_err) {\n // Skip entries that can't be read\n continue;\n }\n }\n if (names.length === 0) {\n console.warn(`No TEMPLATE.md files found in subdirectories of ${dirPath}`);\n }\n // Generate code that imports all templates and exports as array\n const code = [\n ...imports,\n '',\n `export default [${names.join(', ')}];`\n ].join('\\n');\n return {\n data: null,\n code\n };\n }\n};\n//# sourceMappingURL=template-collection.js.map","/**\n * Raw transformer preset for importing file content as strings\n */\n/**\n * Raw transformer preset\n * Transforms any file with ?raw suffix into a string export\n *\n * @example\n * ```typescript\n * import template from './template.html?raw';\n * // template is a string containing the file content\n * ```\n */\nexport const rawTransformer = {\n pattern: /\\?raw$/,\n transform: (content) => {\n return {\n data: content\n };\n }\n};\n//# sourceMappingURL=raw.js.map","/**\n * @module access-control\n * @description\n * Access control interfaces\n */\nexport var Permission;\n(function (Permission) {\n Permission[\"int_read\"] = \"interaction:read\";\n Permission[\"int_write\"] = \"interaction:write\";\n Permission[\"int_delete\"] = \"interaction:delete\";\n Permission[\"int_execute\"] = \"interaction:execute\";\n Permission[\"run_read\"] = \"run:read\";\n Permission[\"run_write\"] = \"run:write\";\n Permission[\"env_admin\"] = \"environment:admin\";\n Permission[\"project_admin\"] = \"project:admin\";\n Permission[\"project_integration_read\"] = \"project:integration_read\";\n Permission[\"project_settings_write\"] = \"project:settings_write\";\n Permission[\"api_key_create\"] = \"api_key:create\";\n Permission[\"api_key_read\"] = \"api_key:read\";\n Permission[\"api_key_update\"] = \"api_key:update\";\n Permission[\"api_key_delete\"] = \"api_key:delete\";\n Permission[\"account_read\"] = \"account:read\";\n Permission[\"account_write\"] = \"account:write\";\n Permission[\"account_admin\"] = \"account:admin\";\n Permission[\"manage_billing\"] = \"account:billing\";\n Permission[\"account_member\"] = \"account:member\";\n Permission[\"content_read\"] = \"content:read\";\n Permission[\"content_write\"] = \"content:write\";\n Permission[\"content_delete\"] = \"content:delete\";\n Permission[\"content_admin\"] = \"content:admin\";\n Permission[\"content_superadmin\"] = \"content:superadmin\";\n Permission[\"workflow_run\"] = \"workflow:run\";\n Permission[\"workflow_admin\"] = \"workflow:admin\";\n Permission[\"workflow_superadmin\"] = \"workflow:superadmin\";\n Permission[\"iam_impersonate\"] = \"iam:impersonate\";\n /** whether the user has access to Sutdio App. */\n Permission[\"studio_access\"] = \"studio:access\";\n})(Permission || (Permission = {}));\nexport var AccessControlResourceType;\n(function (AccessControlResourceType) {\n AccessControlResourceType[\"project\"] = \"project\";\n AccessControlResourceType[\"environment\"] = \"environment\";\n AccessControlResourceType[\"account\"] = \"account\";\n AccessControlResourceType[\"interaction\"] = \"interaction\";\n AccessControlResourceType[\"app\"] = \"application\";\n})(AccessControlResourceType || (AccessControlResourceType = {}));\nexport var AccessControlPrincipalType;\n(function (AccessControlPrincipalType) {\n AccessControlPrincipalType[\"user\"] = \"user\";\n AccessControlPrincipalType[\"group\"] = \"group\";\n AccessControlPrincipalType[\"apikey\"] = \"apikey\";\n})(AccessControlPrincipalType || (AccessControlPrincipalType = {}));\n//# sourceMappingURL=access-control.js.map","export var ApiKeyTypes;\n(function (ApiKeyTypes) {\n ApiKeyTypes[\"secret\"] = \"sk\";\n})(ApiKeyTypes || (ApiKeyTypes = {}));\nexport var PrincipalType;\n(function (PrincipalType) {\n PrincipalType[\"User\"] = \"user\";\n PrincipalType[\"Group\"] = \"group\";\n PrincipalType[\"ApiKey\"] = \"apikey\";\n PrincipalType[\"ServiceAccount\"] = \"service_account\";\n PrincipalType[\"Agent\"] = \"agent\";\n PrincipalType[\"Schedule\"] = \"schedule\";\n})(PrincipalType || (PrincipalType = {}));\n//# sourceMappingURL=apikey.js.map","export const InteractionRefPopulate = \"id name endpoint parent description status version visibility tags agent_runner_options updated_at prompts\";\nexport const InteractionRefWithSchemaPopulate = `${InteractionRefPopulate} result_schema`;\nexport var InteractionStatus;\n(function (InteractionStatus) {\n InteractionStatus[\"draft\"] = \"draft\";\n InteractionStatus[\"published\"] = \"published\";\n InteractionStatus[\"archived\"] = \"archived\";\n})(InteractionStatus || (InteractionStatus = {}));\nexport var ExecutionRunStatus;\n(function (ExecutionRunStatus) {\n ExecutionRunStatus[\"created\"] = \"created\";\n ExecutionRunStatus[\"processing\"] = \"processing\";\n ExecutionRunStatus[\"completed\"] = \"completed\";\n ExecutionRunStatus[\"failed\"] = \"failed\";\n})(ExecutionRunStatus || (ExecutionRunStatus = {}));\nexport var RunDataStorageLevel;\n(function (RunDataStorageLevel) {\n RunDataStorageLevel[\"STANDARD\"] = \"STANDARD\";\n RunDataStorageLevel[\"RESTRICTED\"] = \"RESTRICTED\";\n RunDataStorageLevel[\"DEBUG\"] = \"DEBUG\";\n})(RunDataStorageLevel || (RunDataStorageLevel = {}));\nexport var RunDataStorageDescription;\n(function (RunDataStorageDescription) {\n RunDataStorageDescription[\"STANDARD\"] = \"Run data is stored for both the model inputs and output.\";\n RunDataStorageDescription[\"RESTRICTED\"] = \"No run data is stored for the model inputs \\u2014 only the model output.\";\n RunDataStorageDescription[\"DEBUG\"] = \"Run data is stored for the model inputs and output, schema, and final prompt.\";\n})(RunDataStorageDescription || (RunDataStorageDescription = {}));\nexport const RunDataStorageOptions = {\n [RunDataStorageLevel.STANDARD]: RunDataStorageDescription.STANDARD,\n [RunDataStorageLevel.RESTRICTED]: RunDataStorageDescription.RESTRICTED,\n [RunDataStorageLevel.DEBUG]: RunDataStorageDescription.DEBUG,\n};\n/**\n * Defines the scope for agent search operations.\n */\nexport var AgentSearchScope;\n(function (AgentSearchScope) {\n /**\n * Search is scoped to a specific collection.\n */\n AgentSearchScope[\"Collection\"] = \"collection\";\n})(AgentSearchScope || (AgentSearchScope = {}));\n// Re-exported from email.ts for backwards compatibility\nexport { isEmailChannel, isInteractiveChannel } from \"./email.js\";\n// ================= end async execution payloads ====================\nexport var RunSourceTypes;\n(function (RunSourceTypes) {\n RunSourceTypes[\"api\"] = \"api\";\n RunSourceTypes[\"cli\"] = \"cli\";\n RunSourceTypes[\"ui\"] = \"ui\";\n RunSourceTypes[\"webhook\"] = \"webhook\";\n RunSourceTypes[\"test\"] = \"test-data\";\n RunSourceTypes[\"system\"] = \"system\";\n RunSourceTypes[\"schedule\"] = \"schedule\";\n})(RunSourceTypes || (RunSourceTypes = {}));\nexport const ExecutionRunRefSelect = \"-result -parameters -result_schema -prompt\";\nexport var ConfigModes;\n(function (ConfigModes) {\n ConfigModes[\"RUN_AND_INTERACTION_CONFIG\"] = \"RUN_AND_INTERACTION_CONFIG\";\n ConfigModes[\"RUN_CONFIG_ONLY\"] = \"RUN_CONFIG_ONLY\";\n ConfigModes[\"INTERACTION_CONFIG_ONLY\"] = \"INTERACTION_CONFIG_ONLY\";\n})(ConfigModes || (ConfigModes = {}));\nexport var ConfigModesDescription;\n(function (ConfigModesDescription) {\n ConfigModesDescription[\"RUN_AND_INTERACTION_CONFIG\"] = \"This run configuration is used. Undefined options are filled with interaction configuration.\";\n ConfigModesDescription[\"RUN_CONFIG_ONLY\"] = \"Only this run configuration is used. Undefined options remain undefined.\";\n ConfigModesDescription[\"INTERACTION_CONFIG_ONLY\"] = \"Only interaction configuration is used.\";\n})(ConfigModesDescription || (ConfigModesDescription = {}));\nexport const ConfigModesOptions = {\n [ConfigModes.RUN_AND_INTERACTION_CONFIG]: ConfigModesDescription.RUN_AND_INTERACTION_CONFIG,\n [ConfigModes.RUN_CONFIG_ONLY]: ConfigModesDescription.RUN_CONFIG_ONLY,\n [ConfigModes.INTERACTION_CONFIG_ONLY]: ConfigModesDescription.INTERACTION_CONFIG_ONLY,\n};\n/**\n * Source of the resolved model configuration\n */\nexport var ModelSource;\n(function (ModelSource) {\n /** Model was explicitly provided in the execution config */\n ModelSource[\"config\"] = \"config\";\n /** Model comes from the interaction definition */\n ModelSource[\"interaction\"] = \"interaction\";\n /** Model comes from environment's default_model */\n ModelSource[\"environmentDefault\"] = \"environmentDefault\";\n /** Model comes from project system interaction defaults */\n ModelSource[\"projectSystemDefault\"] = \"projectSystemDefault\";\n /** Model comes from project base defaults */\n ModelSource[\"projectBaseDefault\"] = \"projectBaseDefault\";\n /** Model comes from project modality-specific defaults */\n ModelSource[\"projectModalityDefault\"] = \"projectModalityDefault\";\n /** Model comes from legacy project defaults */\n ModelSource[\"projectLegacyDefault\"] = \"projectLegacyDefault\";\n})(ModelSource || (ModelSource = {}));\n//# sourceMappingURL=interaction.js.map","/**\n * Data Platform Types\n *\n * Types for managing versioned analytical data stores with DuckDB + GCS storage.\n * Supports AI-manageable schemas and multi-table atomic operations.\n */\n// ============================================================================\n// Column Types\n// ============================================================================\n/**\n * Supported column data types for DuckDB tables.\n */\nexport var DataColumnType;\n(function (DataColumnType) {\n DataColumnType[\"STRING\"] = \"STRING\";\n DataColumnType[\"INTEGER\"] = \"INTEGER\";\n DataColumnType[\"BIGINT\"] = \"BIGINT\";\n DataColumnType[\"FLOAT\"] = \"FLOAT\";\n DataColumnType[\"DOUBLE\"] = \"DOUBLE\";\n DataColumnType[\"DECIMAL\"] = \"DECIMAL\";\n DataColumnType[\"BOOLEAN\"] = \"BOOLEAN\";\n DataColumnType[\"DATE\"] = \"DATE\";\n DataColumnType[\"TIMESTAMP\"] = \"TIMESTAMP\";\n DataColumnType[\"JSON\"] = \"JSON\";\n})(DataColumnType || (DataColumnType = {}));\n/**\n * Semantic types that provide AI agents with context about column meaning.\n */\nexport var SemanticColumnType;\n(function (SemanticColumnType) {\n SemanticColumnType[\"EMAIL\"] = \"email\";\n SemanticColumnType[\"PHONE\"] = \"phone\";\n SemanticColumnType[\"URL\"] = \"url\";\n SemanticColumnType[\"CURRENCY\"] = \"currency\";\n SemanticColumnType[\"PERCENTAGE\"] = \"percentage\";\n SemanticColumnType[\"PERSON_NAME\"] = \"person_name\";\n SemanticColumnType[\"ADDRESS\"] = \"address\";\n SemanticColumnType[\"COUNTRY\"] = \"country\";\n SemanticColumnType[\"DATE_ISO\"] = \"date_iso\";\n SemanticColumnType[\"IDENTIFIER\"] = \"identifier\";\n})(SemanticColumnType || (SemanticColumnType = {}));\n/**\n * Mapping from DataColumnType to DuckDB SQL types.\n */\nexport const DATA_COLUMN_TYPE_TO_DUCKDB = {\n [DataColumnType.STRING]: 'VARCHAR',\n [DataColumnType.INTEGER]: 'INTEGER',\n [DataColumnType.BIGINT]: 'BIGINT',\n [DataColumnType.FLOAT]: 'FLOAT',\n [DataColumnType.DOUBLE]: 'DOUBLE',\n [DataColumnType.DECIMAL]: 'DECIMAL(18,4)',\n [DataColumnType.BOOLEAN]: 'BOOLEAN',\n [DataColumnType.DATE]: 'DATE',\n [DataColumnType.TIMESTAMP]: 'TIMESTAMP',\n [DataColumnType.JSON]: 'JSON',\n};\n// ============================================================================\n// Data Store Types\n// ============================================================================\n/**\n * Data store lifecycle status.\n */\nexport var DataStoreStatus;\n(function (DataStoreStatus) {\n /** Store is being created */\n DataStoreStatus[\"CREATING\"] = \"creating\";\n /** Store is active and usable */\n DataStoreStatus[\"ACTIVE\"] = \"active\";\n /** Store encountered an error */\n DataStoreStatus[\"ERROR\"] = \"error\";\n /** Store has been archived (soft deleted) */\n DataStoreStatus[\"ARCHIVED\"] = \"archived\";\n})(DataStoreStatus || (DataStoreStatus = {}));\n// ============================================================================\n// Import Types\n// ============================================================================\n/**\n * Import job status.\n */\nexport var ImportStatus;\n(function (ImportStatus) {\n /** Job is queued */\n ImportStatus[\"PENDING\"] = \"pending\";\n /** Job is running */\n ImportStatus[\"PROCESSING\"] = \"processing\";\n /** Job completed successfully */\n ImportStatus[\"COMPLETED\"] = \"completed\";\n /** Job failed */\n ImportStatus[\"FAILED\"] = \"failed\";\n /** Job was rolled back */\n ImportStatus[\"ROLLED_BACK\"] = \"rolled_back\";\n})(ImportStatus || (ImportStatus = {}));\n/**\n * Default retention configuration: 30 days, snapshots exempt.\n */\nexport const DEFAULT_RETENTION_CONFIG = {\n retention_days: 30,\n snapshots_exempt: true,\n};\n// ============================================================================\n// Dashboard Types\n// ============================================================================\n/**\n * Dashboard lifecycle status.\n */\nexport var DashboardStatus;\n(function (DashboardStatus) {\n /** Dashboard is active and usable */\n DashboardStatus[\"ACTIVE\"] = \"active\";\n /** Dashboard has been archived (soft deleted) */\n DashboardStatus[\"ARCHIVED\"] = \"archived\";\n})(DashboardStatus || (DashboardStatus = {}));\n/**\n * Default layout configuration for dashboards.\n *\n * @deprecated Use combined Vega-Lite spec with vconcat/hconcat instead.\n */\nexport const DEFAULT_DASHBOARD_LAYOUT = {\n columns: 2,\n cellWidth: 600,\n cellHeight: 400,\n padding: 20,\n};\n//# sourceMappingURL=data-platform.js.map","// ============== Provider details ===============\nexport var Providers;\n(function (Providers) {\n Providers[\"openai\"] = \"openai\";\n Providers[\"openai_compatible\"] = \"openai_compatible\";\n Providers[\"azure_openai\"] = \"azure_openai\";\n Providers[\"azure_foundry\"] = \"azure_foundry\";\n Providers[\"huggingface_ie\"] = \"huggingface_ie\";\n Providers[\"replicate\"] = \"replicate\";\n Providers[\"bedrock\"] = \"bedrock\";\n Providers[\"vertexai\"] = \"vertexai\";\n Providers[\"togetherai\"] = \"togetherai\";\n Providers[\"mistralai\"] = \"mistralai\";\n Providers[\"groq\"] = \"groq\";\n Providers[\"watsonx\"] = \"watsonx\";\n Providers[\"xai\"] = \"xai\";\n})(Providers || (Providers = {}));\nexport const ProviderList = {\n openai: {\n id: Providers.openai,\n name: \"OpenAI\",\n requiresApiKey: true,\n requiresEndpointUrl: false,\n supportSearch: false,\n },\n azure_openai: {\n id: Providers.azure_openai,\n name: \"Azure OpenAI\",\n requiresApiKey: false,\n requiresEndpointUrl: true,\n supportSearch: false,\n },\n azure_foundry: {\n id: Providers.azure_foundry,\n name: \"Azure Foundry\",\n requiresApiKey: true,\n requiresEndpointUrl: true,\n supportSearch: false,\n },\n huggingface_ie: {\n id: Providers.huggingface_ie,\n name: \"HuggingFace Inference Endpoint\",\n requiresApiKey: true,\n requiresEndpointUrl: true,\n },\n replicate: {\n id: Providers.replicate,\n name: \"Replicate\",\n requiresApiKey: true,\n requiresEndpointUrl: false,\n supportSearch: true,\n },\n bedrock: {\n id: Providers.bedrock,\n name: \"AWS Bedrock\",\n requiresApiKey: false,\n requiresEndpointUrl: false,\n endpointPlaceholder: \"region name (eg. us-east-1)\",\n supportSearch: false,\n },\n vertexai: {\n id: Providers.vertexai,\n name: \"Google Vertex AI\",\n requiresApiKey: false,\n requiresEndpointUrl: false,\n supportSearch: false,\n },\n togetherai: {\n id: Providers.togetherai,\n name: \"Together AI\",\n requiresApiKey: false,\n requiresEndpointUrl: false,\n supportSearch: false,\n },\n mistralai: {\n id: Providers.mistralai,\n name: \"Mistral AI\",\n requiresApiKey: false,\n requiresEndpointUrl: false,\n supportSearch: false,\n },\n groq: {\n id: Providers.groq,\n name: \"Groq Cloud\",\n requiresApiKey: false,\n requiresEndpointUrl: false,\n supportSearch: false,\n },\n watsonx: {\n id: Providers.watsonx,\n name: \"IBM WatsonX\",\n requiresApiKey: true,\n requiresEndpointUrl: true,\n supportSearch: false\n },\n xai: {\n id: Providers.xai,\n name: \"xAI (Grok)\",\n requiresApiKey: true,\n requiresEndpointUrl: false,\n supportSearch: false\n },\n openai_compatible: {\n id: Providers.openai_compatible,\n name: \"OpenAI Compatible\",\n requiresApiKey: true,\n requiresEndpointUrl: true,\n endpointPlaceholder: \"https://api.example.com/v1\",\n supportSearch: false\n },\n};\n/**\n * Standardized error class for Llumiverse driver errors.\n *\n * Normalizes errors from different LLM providers (OpenAI, Anthropic, Bedrock, VertexAI, etc.)\n * into a consistent format. The primary value is the `retryable` flag, which enables upstream\n * consumers to implement smart retry logic.\n *\n * @example\n * ```typescript\n * try {\n * const result = await driver.execute(segments, options);\n * } catch (error) {\n * if (LlumiverseError.isLlumiverseError(error)) {\n * console.log(`Provider: ${error.context.provider}`);\n * console.log(`Model: ${error.context.model}`);\n * console.log(`Retryable: ${error.retryable}`);\n *\n * if (error.retryable) {\n * // Implement retry logic with exponential backoff\n * await retryWithBackoff(() => driver.execute(segments, options));\n * } else {\n * // Handle non-retryable error (e.g., invalid API key, malformed request)\n * logError(error);\n * }\n * }\n * throw error;\n * }\n * ```\n */\nexport class LlumiverseError extends Error {\n /**\n * HTTP status code (e.g., 429, 500) if available.\n * Undefined if the error doesn't have a numeric status code.\n */\n code;\n /**\n * Provider-specific error name/type (e.g., \"ThrottlingException\", \"ValidationException\").\n * Optional - used to preserve the semantic error type from the provider SDK.\n */\n name;\n /**\n * Whether this error is retryable.\n * - True: Definitely retryable (rate limits, timeouts, server errors)\n * - False: Definitely not retryable (auth failures, invalid requests, malformed schemas)\n * - Undefined: Unknown retryability - allows consumers to decide default behavior\n *\n * When undefined, consumers can choose their retry strategy:\n * - Conservative: Don't retry unknown errors (avoid spam)\n * - Resilient: Retry unknown errors (prioritize success)\n */\n retryable;\n /**\n * Context about where and how the error occurred.\n * Includes provider, model, operation type.\n */\n context;\n /**\n * The original error from the provider SDK.\n * Preserved for debugging and detailed error inspection.\n */\n originalError;\n constructor(message, retryable, context, originalError, code, name) {\n super(message);\n this.name = name || 'LlumiverseError';\n this.code = code;\n this.retryable = retryable;\n this.context = context;\n this.originalError = originalError;\n // Preserve stack trace from original error if available\n if (originalError instanceof Error && originalError.stack) {\n this.stack = originalError.stack;\n }\n }\n /**\n * Serialize the error to JSON for logging or transmission.\n * Includes all error properties except the original error object itself.\n */\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n code: this.code,\n retryable: this.retryable,\n context: this.context,\n stack: this.stack,\n // Include original error message if available\n originalErrorMessage: this.originalError instanceof Error\n ? this.originalError.message\n : String(this.originalError),\n };\n }\n /**\n * Type guard to check if an error is a LlumiverseError.\n * Useful for conditional error handling.\n *\n * @param error - The error to check\n * @returns True if the error is a LlumiverseError\n */\n static isLlumiverseError(error) {\n return error instanceof LlumiverseError;\n }\n}\n//Common names to share between different models\nexport var SharedOptions;\n(function (SharedOptions) {\n //Text\n SharedOptions[\"max_tokens\"] = \"max_tokens\";\n SharedOptions[\"temperature\"] = \"temperature\";\n SharedOptions[\"top_p\"] = \"top_p\";\n SharedOptions[\"top_k\"] = \"top_k\";\n SharedOptions[\"presence_penalty\"] = \"presence_penalty\";\n SharedOptions[\"frequency_penalty\"] = \"frequency_penalty\";\n SharedOptions[\"stop_sequence\"] = \"stop_sequence\";\n //Image\n SharedOptions[\"seed\"] = \"seed\";\n SharedOptions[\"number_of_images\"] = \"number_of_images\";\n})(SharedOptions || (SharedOptions = {}));\nexport var OptionType;\n(function (OptionType) {\n OptionType[\"numeric\"] = \"numeric\";\n OptionType[\"enum\"] = \"enum\";\n OptionType[\"boolean\"] = \"boolean\";\n OptionType[\"string_list\"] = \"string_list\";\n})(OptionType || (OptionType = {}));\n// ============== Prompts ===============\nexport var PromptRole;\n(function (PromptRole) {\n PromptRole[\"safety\"] = \"safety\";\n PromptRole[\"system\"] = \"system\";\n PromptRole[\"user\"] = \"user\";\n PromptRole[\"assistant\"] = \"assistant\";\n PromptRole[\"negative\"] = \"negative\";\n PromptRole[\"mask\"] = \"mask\";\n /**\n * Used to send the response of a tool\n */\n PromptRole[\"tool\"] = \"tool\";\n})(PromptRole || (PromptRole = {}));\n/**\n * @deprecated This is deprecated. Use CompletionResult.type information instead.\n */\nexport var Modalities;\n(function (Modalities) {\n Modalities[\"text\"] = \"text\";\n Modalities[\"image\"] = \"image\";\n})(Modalities || (Modalities = {}));\nexport var AIModelStatus;\n(function (AIModelStatus) {\n AIModelStatus[\"Available\"] = \"available\";\n AIModelStatus[\"Pending\"] = \"pending\";\n AIModelStatus[\"Stopped\"] = \"stopped\";\n AIModelStatus[\"Unavailable\"] = \"unavailable\";\n AIModelStatus[\"Unknown\"] = \"unknown\";\n AIModelStatus[\"Legacy\"] = \"legacy\";\n})(AIModelStatus || (AIModelStatus = {}));\nexport var ModelType;\n(function (ModelType) {\n ModelType[\"Classifier\"] = \"classifier\";\n ModelType[\"Regressor\"] = \"regressor\";\n ModelType[\"Clustering\"] = \"clustering\";\n ModelType[\"AnomalyDetection\"] = \"anomaly-detection\";\n ModelType[\"TimeSeries\"] = \"time-series\";\n ModelType[\"Text\"] = \"text\";\n ModelType[\"Image\"] = \"image\";\n ModelType[\"Audio\"] = \"audio\";\n ModelType[\"Video\"] = \"video\";\n ModelType[\"Embedding\"] = \"embedding\";\n ModelType[\"Chat\"] = \"chat\";\n ModelType[\"Code\"] = \"code\";\n ModelType[\"NLP\"] = \"nlp\";\n ModelType[\"MultiModal\"] = \"multi-modal\";\n ModelType[\"Test\"] = \"test\";\n ModelType[\"Other\"] = \"other\";\n ModelType[\"Unknown\"] = \"unknown\";\n})(ModelType || (ModelType = {}));\nexport var TrainingJobStatus;\n(function (TrainingJobStatus) {\n TrainingJobStatus[\"running\"] = \"running\";\n TrainingJobStatus[\"succeeded\"] = \"succeeded\";\n TrainingJobStatus[\"failed\"] = \"failed\";\n TrainingJobStatus[\"cancelled\"] = \"cancelled\";\n})(TrainingJobStatus || (TrainingJobStatus = {}));\n//# sourceMappingURL=types.js.map","import { OptionType, SharedOptions } from \"../types.js\";\nexport const textOptionsFallback = {\n _option_id: \"text-fallback\",\n options: [\n {\n name: SharedOptions.max_tokens, type: OptionType.numeric, min: 1,\n integer: true, step: 200, description: \"The maximum number of tokens to generate\"\n },\n {\n name: SharedOptions.temperature, type: OptionType.numeric, min: 0.0, default: 0.7,\n integer: false, step: 0.1, description: \"A higher temperature biases toward less likely tokens, making the model more creative\"\n },\n {\n name: SharedOptions.top_p, type: OptionType.numeric, min: 0, max: 1,\n integer: false, step: 0.1, description: \"Limits token sampling to the cumulative probability of the top p tokens\"\n },\n {\n name: SharedOptions.top_k, type: OptionType.numeric, min: 1,\n integer: true, step: 1, description: \"Limits token sampling to the top k tokens\"\n },\n {\n name: SharedOptions.presence_penalty, type: OptionType.numeric, min: -2.0, max: 2.0,\n integer: false, step: 0.1, description: \"Penalise tokens if they appear at least once in the text\"\n },\n {\n name: SharedOptions.frequency_penalty, type: OptionType.numeric, min: -2.0, max: 2.0,\n integer: false, step: 0.1, description: \"Penalise tokens based on their frequency in the text\"\n },\n { name: SharedOptions.stop_sequence, type: OptionType.string_list, value: [], description: \"The generation will halt if one of the stop sequences is output\" },\n ]\n};\n//# sourceMappingURL=fallback.js.map","import { OptionType, SharedOptions } from \"../types.js\";\nimport { getMaxOutputTokens } from \"./context-windows.js\";\nimport { textOptionsFallback } from \"./fallback.js\";\nexport var ImagenTaskType;\n(function (ImagenTaskType) {\n ImagenTaskType[\"TEXT_IMAGE\"] = \"TEXT_IMAGE\";\n ImagenTaskType[\"EDIT_MODE_INPAINT_REMOVAL\"] = \"EDIT_MODE_INPAINT_REMOVAL\";\n ImagenTaskType[\"EDIT_MODE_INPAINT_INSERTION\"] = \"EDIT_MODE_INPAINT_INSERTION\";\n ImagenTaskType[\"EDIT_MODE_BGSWAP\"] = \"EDIT_MODE_BGSWAP\";\n ImagenTaskType[\"EDIT_MODE_OUTPAINT\"] = \"EDIT_MODE_OUTPAINT\";\n ImagenTaskType[\"CUSTOMIZATION_SUBJECT\"] = \"CUSTOMIZATION_SUBJECT\";\n ImagenTaskType[\"CUSTOMIZATION_STYLE\"] = \"CUSTOMIZATION_STYLE\";\n ImagenTaskType[\"CUSTOMIZATION_CONTROLLED\"] = \"CUSTOMIZATION_CONTROLLED\";\n ImagenTaskType[\"CUSTOMIZATION_INSTRUCT\"] = \"CUSTOMIZATION_INSTRUCT\";\n})(ImagenTaskType || (ImagenTaskType = {}));\nexport var ImagenMaskMode;\n(function (ImagenMaskMode) {\n ImagenMaskMode[\"MASK_MODE_USER_PROVIDED\"] = \"MASK_MODE_USER_PROVIDED\";\n ImagenMaskMode[\"MASK_MODE_BACKGROUND\"] = \"MASK_MODE_BACKGROUND\";\n ImagenMaskMode[\"MASK_MODE_FOREGROUND\"] = \"MASK_MODE_FOREGROUND\";\n ImagenMaskMode[\"MASK_MODE_SEMANTIC\"] = \"MASK_MODE_SEMANTIC\";\n})(ImagenMaskMode || (ImagenMaskMode = {}));\nexport var ThinkingLevel;\n(function (ThinkingLevel) {\n ThinkingLevel[\"HIGH\"] = \"HIGH\";\n ThinkingLevel[\"MEDIUM\"] = \"MEDIUM\";\n ThinkingLevel[\"LOW\"] = \"LOW\";\n ThinkingLevel[\"MINIMAL\"] = \"MINIMAL\";\n ThinkingLevel[\"THINKING_LEVEL_UNSPECIFIED\"] = \"THINKING_LEVEL_UNSPECIFIED\";\n})(ThinkingLevel || (ThinkingLevel = {}));\nexport function getVertexAiOptions(model, option) {\n if (model.includes(\"imagen-\")) {\n return getImagenOptions(model, option);\n }\n else if (model.includes(\"gemini\")) {\n return getGeminiOptions(model, option);\n }\n else if (model.includes(\"claude\")) {\n return getClaudeOptions(model, option);\n }\n else if (model.includes(\"llama\")) {\n return getLlamaOptions(model);\n }\n return textOptionsFallback;\n}\n/**\n * Extract Gemini version from a model ID.\n *\n * Examples:\n * - locations/global/publishers/google/models/gemini-2.5-flash -> 2.5\n * - publishers/google/models/gemini-3-pro-image-preview -> 3\n */\nexport function getGeminiModelVersion(modelId) {\n const modelName = modelId.split('/').pop() ?? modelId;\n const match = modelName.match(/^gemini-(\\d+(?:\\.\\d+)?)/i);\n return match?.[1];\n}\nfunction parseVersion(version) {\n const match = version.match(/^(\\d+)(?:\\.(\\d+))?$/);\n if (!match) {\n return undefined;\n }\n return {\n major: Number(match[1]),\n minor: Number(match[2] ?? '0'),\n };\n}\nexport function isGeminiModelVersionGte(modelId, minVersion) {\n const modelVersion = getGeminiModelVersion(modelId);\n if (!modelVersion) {\n return false;\n }\n const current = parseVersion(modelVersion);\n const target = parseVersion(minVersion);\n if (!current || !target) {\n return false;\n }\n if (current.major > target.major) {\n return true;\n }\n if (current.major < target.major) {\n return false;\n }\n return current.minor >= target.minor;\n}\nfunction getGeminiThinkingLevels(model) {\n const normalized = model.toLowerCase();\n const isGemini3OrLater = isGeminiModelVersionGte(model, \"3.0\");\n const isGemini31OrLater = isGeminiModelVersionGte(model, \"3.1\");\n const isFlashLite = normalized.includes(\"flash-lite\");\n const isFlash = normalized.includes(\"flash\") && !isFlashLite;\n const isPro = normalized.includes(\"pro\");\n // Gemini 3 / 3.1 thinking_level support summary:\n // - MINIMAL: Gemini 3 Flash and Gemini 3.1 Flash-Lite only.\n // Gemini 3.1 Flash-Lite defaults to MINIMAL.\n // - LOW: Supported by Gemini 3+ models.\n // - MEDIUM: Gemini 3 Flash, Gemini 3.1 Pro, Gemini 3.1 Flash-Lite.\n // - HIGH: Supported by Gemini 3+ models.\n // - Thinking cannot be turned off for Gemini 3 Pro and Gemini 3.1 Pro.\n if (isFlashLite && isGemini31OrLater) {\n return {\n levels: {\n \"Minimal\": ThinkingLevel.MINIMAL,\n \"Low\": ThinkingLevel.LOW,\n \"Medium\": ThinkingLevel.MEDIUM,\n \"High\": ThinkingLevel.HIGH,\n },\n defaultLevel: ThinkingLevel.MINIMAL,\n };\n }\n // Gemini 3+ Flash supports MINIMAL and MEDIUM in addition to LOW/HIGH.\n if (isFlash) {\n return {\n levels: {\n \"Minimal\": ThinkingLevel.MINIMAL,\n \"Low\": ThinkingLevel.LOW,\n \"Medium\": ThinkingLevel.MEDIUM,\n \"High\": ThinkingLevel.HIGH,\n },\n defaultLevel: ThinkingLevel.MINIMAL,\n };\n }\n // Gemini 3.1 Pro adds MEDIUM, but does not support turning thinking off.\n if (isPro && isGemini31OrLater) {\n return {\n levels: {\n \"Low\": ThinkingLevel.LOW,\n \"Medium\": ThinkingLevel.MEDIUM,\n \"High\": ThinkingLevel.HIGH,\n },\n defaultLevel: ThinkingLevel.LOW,\n };\n }\n // Gemini 3 Pro supports LOW/HIGH. Thinking cannot be turned off.\n if (isPro) {\n return {\n levels: {\n \"Low\": ThinkingLevel.LOW,\n \"High\": ThinkingLevel.HIGH,\n },\n defaultLevel: ThinkingLevel.LOW,\n };\n }\n // Fallback for unknown Gemini 3+/4+ families:\n // prefer future-safe propagation by enabling the guaranteed baseline levels.\n if (isGemini3OrLater) {\n return {\n levels: {\n \"Low\": ThinkingLevel.LOW,\n \"Medium\": ThinkingLevel.MEDIUM,\n \"High\": ThinkingLevel.HIGH,\n },\n defaultLevel: ThinkingLevel.LOW,\n };\n }\n // Non-3.x models should not reach this helper in normal flow.\n return {\n levels: {\n \"Low\": ThinkingLevel.LOW,\n \"High\": ThinkingLevel.HIGH,\n },\n defaultLevel: ThinkingLevel.LOW,\n };\n}\nfunction getImagenOptions(model, option) {\n const commonOptions = [\n {\n name: SharedOptions.number_of_images, type: OptionType.numeric, min: 1, max: 4, default: 1,\n integer: true, description: \"Number of Images to generate\",\n },\n {\n name: SharedOptions.seed, type: OptionType.numeric, min: 0, max: 4294967295, default: 12,\n integer: true, description: \"The seed of the generated image\"\n },\n {\n name: \"person_generation\", type: OptionType.enum, enum: { \"Disallow the inclusion of people or faces in images\": \"dont_allow\", \"Allow generation of adults only\": \"allow_adult\", \"Allow generation of people of all ages\": \"allow_all\" },\n default: \"allow_adult\", description: \"The safety setting for allowing the generation of people in the image\"\n },\n {\n name: \"safety_setting\", type: OptionType.enum, enum: { \"Block very few problematic prompts and responses\": \"block_none\", \"Block only few problematic prompts and responses\": \"block_only_high\", \"Block some problematic prompts and responses\": \"block_medium_and_above\", \"Strictest filtering\": \"block_low_and_above\" },\n default: \"block_medium_and_above\", description: \"The overall safety setting\"\n },\n ];\n const outputOptions = [\n {\n name: \"image_file_type\", type: OptionType.enum, enum: { \"JPEG\": \"image/jpeg\", \"PNG\": \"image/png\" },\n default: \"image/png\", description: \"The file type of the generated image\",\n refresh: true,\n },\n ];\n const jpegQuality = {\n name: \"jpeg_compression_quality\", type: OptionType.numeric, min: 0, max: 100, default: 75,\n integer: true, description: \"The compression quality of the JPEG image\",\n };\n if (option?.image_file_type === \"image/jpeg\") {\n outputOptions.push(jpegQuality);\n }\n if (model.includes(\"generate\")) {\n // Generate models\n const modeOptions = [\n {\n name: \"aspect_ratio\", type: OptionType.enum, enum: { \"1:1\": \"1:1\", \"4:3\": \"4:3\", \"3:4\": \"3:4\", \"16:9\": \"16:9\", \"9:16\": \"9:16\" },\n default: \"1:1\", description: \"The aspect ratio of the generated image\"\n },\n {\n name: \"add_watermark\", type: OptionType.boolean, default: false, description: \"Add an invisible watermark to the generated image, useful for detection of AI images\"\n },\n ];\n const enhanceOptions = !model.includes(\"generate-001\") ? [\n {\n name: \"enhance_prompt\", type: OptionType.boolean, default: true, description: \"VertexAI automatically rewrites the prompt to better reflect the prompt's intent.\"\n },\n ] : [];\n return {\n _option_id: \"vertexai-imagen\",\n options: [\n ...commonOptions,\n ...modeOptions,\n ...outputOptions,\n ...enhanceOptions,\n ]\n };\n }\n if (model.includes(\"capability\")) {\n // Edit models\n let guidanceScaleDefault = 75;\n if (option?.edit_mode === ImagenTaskType.EDIT_MODE_INPAINT_INSERTION) {\n guidanceScaleDefault = 60;\n }\n const modeOptions = [\n {\n name: \"edit_mode\", type: OptionType.enum,\n enum: {\n \"EDIT_MODE_INPAINT_REMOVAL\": \"EDIT_MODE_INPAINT_REMOVAL\",\n \"EDIT_MODE_INPAINT_INSERTION\": \"EDIT_MODE_INPAINT_INSERTION\",\n \"EDIT_MODE_BGSWAP\": \"EDIT_MODE_BGSWAP\",\n \"EDIT_MODE_OUTPAINT\": \"EDIT_MODE_OUTPAINT\",\n \"CUSTOMIZATION_SUBJECT\": \"CUSTOMIZATION_SUBJECT\",\n \"CUSTOMIZATION_STYLE\": \"CUSTOMIZATION_STYLE\",\n \"CUSTOMIZATION_CONTROLLED\": \"CUSTOMIZATION_CONTROLLED\",\n \"CUSTOMIZATION_INSTRUCT\": \"CUSTOMIZATION_INSTRUCT\",\n },\n description: \"The editing mode. CUSTOMIZATION options use few-shot learning to generate images based on a few examples.\"\n },\n {\n name: \"guidance_scale\", type: OptionType.numeric, min: 0, max: 500, default: guidanceScaleDefault,\n integer: true, description: \"How closely the generation follows the prompt\"\n }\n ];\n const maskOptions = (option?.edit_mode?.includes(\"EDIT\")) ? [\n {\n name: \"mask_mode\", type: OptionType.enum,\n enum: {\n \"MASK_MODE_USER_PROVIDED\": \"MASK_MODE_USER_PROVIDED\",\n \"MASK_MODE_BACKGROUND\": \"MASK_MODE_BACKGROUND\",\n \"MASK_MODE_FOREGROUND\": \"MASK_MODE_FOREGROUND\",\n \"MASK_MODE_SEMANTIC\": \"MASK_MODE_SEMANTIC\",\n },\n default: \"MASK_MODE_USER_PROVIDED\",\n description: \"How should the mask for the generation be provided\"\n },\n {\n name: \"mask_dilation\", type: OptionType.numeric, min: 0, max: 1,\n integer: true, description: \"The mask dilation, grows the mask by a percentage of image width to compensate for imprecise masks.\"\n },\n ] : [];\n const maskClassOptions = (option?.mask_mode === ImagenMaskMode.MASK_MODE_SEMANTIC) ? [\n {\n name: \"mask_class\", type: OptionType.string_list, default: [],\n description: \"Input Class IDs. Create a mask based on image class, based on https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/imagen-api-customization#segment-ids\"\n }\n ] : [];\n const editOptions = option?.edit_mode?.includes(\"EDIT\") ? [\n {\n name: \"edit_steps\", type: OptionType.numeric, default: 75,\n integer: true, description: \"The number of steps for the base image generation, more steps means more time and better quality\"\n },\n ] : [];\n const customizationOptions = option?.edit_mode === ImagenTaskType.CUSTOMIZATION_CONTROLLED\n || option?.edit_mode === ImagenTaskType.CUSTOMIZATION_SUBJECT ? [\n {\n name: \"controlType\", type: OptionType.enum, enum: { \"Face Mesh\": \"CONTROL_TYPE_FACE_MESH\", \"Canny\": \"CONTROL_TYPE_CANNY\", \"Scribble\": \"CONTROL_TYPE_SCRIBBLE\" },\n default: \"CONTROL_TYPE_CANNY\", description: \"Method used to generate the control image\"\n },\n {\n name: \"controlImageComputation\", type: OptionType.boolean, default: true, description: \"Should the control image be computed from the input image, or is it provided\"\n }\n ] : [];\n return {\n _option_id: \"vertexai-imagen\",\n options: [\n ...modeOptions,\n ...commonOptions,\n ...maskOptions,\n ...maskClassOptions,\n ...editOptions,\n ...customizationOptions,\n ...outputOptions,\n ]\n };\n }\n return textOptionsFallback;\n}\nfunction getGeminiThinkingOptionItems(model) {\n const thinkingLevelConfig = getGeminiThinkingLevels(model);\n return [\n {\n name: \"include_thoughts\",\n type: OptionType.boolean,\n default: false,\n description: \"Include the model's reasoning process in the response\"\n },\n {\n name: \"thinking_level\",\n type: OptionType.enum,\n enum: thinkingLevelConfig.levels,\n default: thinkingLevelConfig.defaultLevel,\n description: \"Higher thinking levels may improve quality, but increase response times and token costs\"\n }\n ];\n}\nfunction getGeminiOptions(model, option) {\n // Special handling for gemini image / nano banana models\n if (model.includes(\"image\")) {\n const isGemini25OrLater = isGeminiModelVersionGte(model, \"2.5\");\n const isGemini3OrLater = isGeminiModelVersionGte(model, \"3.0\");\n const max_tokens_limit = getGeminiMaxTokensLimit(model);\n const excludeOptions = [\"max_tokens\", \"presence_penalty\", \"frequency_penalty\", \"seed\", \"top_k\"];\n let commonOptions = textOptionsFallback.options.filter((option) => !excludeOptions.includes(option.name));\n // Set max temperature to 2.0\n commonOptions = commonOptions.map((option) => {\n if (option.name === SharedOptions.temperature &&\n option.type === OptionType.numeric) {\n return {\n ...option,\n max: 2.0,\n };\n }\n return option;\n });\n const max_tokens = [{\n name: SharedOptions.max_tokens,\n type: OptionType.numeric,\n min: 1,\n max: max_tokens_limit,\n integer: true,\n step: 200,\n description: \"Maximum output tokens\"\n }];\n const imageOptions = [];\n // Aspect ratio, person generation, prominent people: 2.5+\n if (isGemini25OrLater) {\n imageOptions.push({\n name: \"image_aspect_ratio\",\n type: OptionType.enum,\n enum: {\n \"1:1\": \"1:1\",\n \"2:3\": \"2:3\",\n \"3:2\": \"3:2\",\n \"3:4\": \"3:4\",\n \"4:3\": \"4:3\",\n \"9:16\": \"9:16\",\n \"16:9\": \"16:9\",\n \"21:9\": \"21:9\"\n },\n default: \"1:1\",\n description: \"Aspect ratio of the generated images\"\n }, {\n name: \"person_generation\",\n type: OptionType.enum,\n enum: {\n \"Allow all people\": \"ALLOW_ALL\",\n \"Allow adults only\": \"ALLOW_ADULT\",\n \"Do not generate people\": \"ALLOW_NONE\"\n },\n default: \"ALLOW_ALL\",\n description: \"Controls the generation of people in images\"\n }, {\n name: \"prominent_people\",\n type: OptionType.enum,\n enum: {\n \"Allow prominent people\": \"ALLOW_PROMINENT_PEOPLE\",\n \"Block prominent people\": \"BLOCK_PROMINENT_PEOPLE\"\n },\n description: \"Controls whether prominent people (celebrities) can be generated\"\n });\n }\n // Resolution settings: 3.0+\n if (isGemini3OrLater) {\n imageOptions.push({\n name: \"image_size\",\n type: OptionType.enum,\n enum: {\n \"1K\": \"1K\",\n \"2K\": \"2K\",\n \"4K\": \"4K\"\n },\n default: \"1K\",\n description: \"Size of generated images\"\n });\n }\n // Output format: all image models\n imageOptions.push({\n name: \"output_mime_type\",\n type: OptionType.enum,\n enum: {\n \"PNG\": \"image/png\",\n \"JPEG\": \"image/jpeg\",\n },\n default: \"image/png\",\n description: \"MIME type of the generated image\",\n refresh: true,\n });\n if (option?.output_mime_type === \"image/jpeg\") {\n imageOptions.push({\n name: \"output_compression_quality\",\n type: OptionType.numeric,\n min: 0,\n max: 100,\n default: 90,\n integer: true,\n description: \"Compression quality for JPEG images (0-100)\"\n });\n }\n // Thinking options: 3.0+ (same as non-image counterparts)\n const thinkingOptions = isGemini3OrLater ? getGeminiThinkingOptionItems(model) : [];\n return {\n _option_id: \"vertexai-gemini\",\n options: [\n ...max_tokens,\n ...commonOptions,\n ...imageOptions,\n ...thinkingOptions,\n ]\n };\n }\n const max_tokens_limit = getGeminiMaxTokensLimit(model);\n const excludeOptions = [\"max_tokens\"];\n const commonOptions = textOptionsFallback.options.filter((option) => !excludeOptions.includes(option.name));\n const max_tokens = [{\n name: SharedOptions.max_tokens, type: OptionType.numeric, min: 1, max: max_tokens_limit,\n integer: true, step: 200, description: \"The maximum number of tokens to generate\"\n }];\n const seedOption = {\n name: SharedOptions.seed, type: OptionType.numeric, integer: true, description: \"The seed for the generation, useful for reproducibility\"\n };\n if (isGeminiModelVersionGte(model, \"3.0\")) {\n return {\n _option_id: \"vertexai-gemini\",\n options: [\n ...max_tokens,\n ...commonOptions,\n seedOption,\n ...getGeminiThinkingOptionItems(model),\n ]\n };\n }\n if (model.includes(\"-2.5-\")) {\n // Gemini 2.5 thinking models\n // Set budget token ranges based on model variant\n let budgetMin = -1;\n let budgetMax = 24576;\n let budgetDescription = \"\";\n if (model.includes(\"flash-lite\")) {\n budgetMin = -1;\n budgetMax = 24576;\n budgetDescription = \"The target number of tokens to use for reasoning. \" +\n \"Flash Lite default: Model does not think. \" +\n \"Range: 512-24576 tokens. \" +\n \"Set to 0 to disable thinking, -1 for dynamic thinking.\";\n }\n else if (model.includes(\"flash\")) {\n budgetMin = -1;\n budgetMax = 24576;\n budgetDescription = \"The target number of tokens to use for reasoning. \" +\n \"Flash default: Dynamic thinking (model decides when and how much to think). \" +\n \"Range: 0-24576 tokens. \" +\n \"Set to 0 to disable thinking, -1 for dynamic thinking.\";\n }\n else if (model.includes(\"pro\")) {\n budgetMin = -1;\n budgetMax = 32768;\n budgetDescription = \"The target number of tokens to use for reasoning. \" +\n \"Pro default: Dynamic thinking (model decides when and how much to think). \" +\n \"Range: 128-32768 tokens. \" +\n \"Cannot disable thinking - minimum 128 tokens. Set to -1 for dynamic thinking.\";\n }\n const geminiThinkingOptions = [\n {\n name: \"include_thoughts\",\n type: OptionType.boolean,\n default: false,\n description: \"Include the model's reasoning process in the response\"\n },\n {\n name: \"thinking_budget_tokens\",\n type: OptionType.numeric,\n min: budgetMin,\n max: budgetMax,\n default: undefined,\n integer: true,\n step: 100,\n description: budgetDescription,\n }\n ];\n return {\n _option_id: \"vertexai-gemini\",\n options: [\n ...max_tokens,\n ...commonOptions,\n seedOption,\n ...geminiThinkingOptions,\n ]\n };\n }\n return {\n _option_id: \"vertexai-gemini\",\n options: [\n ...max_tokens,\n ...commonOptions,\n seedOption,\n ]\n };\n}\nfunction getClaudeOptions(model, option) {\n const max_tokens_limit = getClaudeMaxTokensLimit(model);\n const excludeOptions = [\"max_tokens\", \"presence_penalty\", \"frequency_penalty\"];\n const commonOptions = textOptionsFallback.options.filter((option) => !excludeOptions.includes(option.name));\n const max_tokens = [{\n name: SharedOptions.max_tokens, type: OptionType.numeric, min: 1, max: max_tokens_limit,\n integer: true, step: 200, description: \"The maximum number of tokens to generate\"\n }];\n if (model.includes(\"-3-7\") || model.includes(\"-4\")) {\n const claudeModeOptions = [\n {\n name: \"thinking_mode\",\n type: OptionType.boolean,\n default: false,\n description: \"If true, use the extended reasoning mode\"\n },\n ];\n const claudeThinkingOptions = option?.thinking_mode ? [\n {\n name: \"thinking_budget_tokens\",\n type: OptionType.numeric,\n min: 1024,\n default: 1024,\n integer: true,\n step: 100,\n description: \"The target number of tokens to use for reasoning, not a hard limit.\"\n },\n {\n name: \"include_thoughts\",\n type: OptionType.boolean,\n default: false,\n description: \"Include the model's reasoning process in the response\"\n }\n ] : [];\n return {\n _option_id: \"vertexai-claude\",\n options: [\n ...max_tokens,\n ...commonOptions,\n ...claudeModeOptions,\n ...claudeThinkingOptions,\n ]\n };\n }\n return {\n _option_id: \"vertexai-claude\",\n options: [\n ...max_tokens,\n ...commonOptions,\n ]\n };\n}\nfunction getLlamaOptions(model) {\n const max_tokens_limit = getLlamaMaxTokensLimit(model);\n const excludeOptions = [\"max_tokens\", \"presence_penalty\", \"frequency_penalty\", \"stop_sequence\"];\n let commonOptions = textOptionsFallback.options.filter((option) => !excludeOptions.includes(option.name));\n const max_tokens = [{\n name: SharedOptions.max_tokens, type: OptionType.numeric, min: 1, max: max_tokens_limit,\n integer: true, step: 200, description: \"The maximum number of tokens to generate\"\n }];\n // Set max temperature to 1.0 for Llama models\n commonOptions = commonOptions.map((option) => {\n if (option.name === SharedOptions.temperature &&\n option.type === OptionType.numeric) {\n return {\n ...option,\n max: 1.0,\n };\n }\n return option;\n });\n return {\n _option_id: \"text-fallback\",\n options: [\n ...max_tokens,\n ...commonOptions,\n ]\n };\n}\nfunction getGeminiMaxTokensLimit(model) {\n if (model.includes(\"image\")) {\n return isGeminiModelVersionGte(model, \"2.5\") ? 32768 : 8192;\n }\n if (model.includes(\"thinking\") || isGeminiModelVersionGte(model, \"2.5\")) {\n return 65535; // API upper bound is exclusive\n }\n if (model.includes(\"ultra\") || model.includes(\"vision\")) {\n return 2048;\n }\n return 8192;\n}\n// Delegate to provider-agnostic limits,\n// override only where VertexAI supports extended output (128K for 3.7)\nfunction getClaudeMaxTokensLimit(model) {\n if (model.includes('-3-7'))\n return 128000;\n return getMaxOutputTokens(model);\n}\nfunction getLlamaMaxTokensLimit(_model) {\n return 8192;\n}\nexport function getMaxTokensLimitVertexAi(model) {\n if (model.includes(\"imagen-\")) {\n return 0; // Imagen models do not have a max tokens limit in the same way as text models\n }\n else if (model.includes(\"claude\")) {\n return getClaudeMaxTokensLimit(model);\n }\n else if (model.includes(\"gemini\")) {\n return getGeminiMaxTokensLimit(model);\n }\n else if (model.includes(\"llama\")) {\n return getLlamaMaxTokensLimit(model);\n }\n return 8192; // Default fallback limit\n}\n//# sourceMappingURL=vertexai.js.map","import { ProviderList, Providers } from \"@llumiverse/common\";\n// Virtual providers from studio\nexport var CustomProviders;\n(function (CustomProviders) {\n CustomProviders[\"virtual_lb\"] = \"virtual_lb\";\n CustomProviders[\"virtual_mediator\"] = \"virtual_mediator\";\n CustomProviders[\"test\"] = \"test\";\n})(CustomProviders || (CustomProviders = {}));\nexport const SupportedProviders = {\n ...Providers,\n ...CustomProviders\n};\nexport const CustomProvidersList = {\n virtual_lb: {\n id: CustomProviders.virtual_lb,\n name: \"Virtual - Load Balancer\",\n requiresApiKey: false,\n requiresEndpointUrl: false,\n supportSearch: false,\n },\n virtual_mediator: {\n id: CustomProviders.virtual_mediator,\n name: \"Virtual - Mediator\",\n requiresApiKey: false,\n requiresEndpointUrl: false,\n supportSearch: false,\n },\n test: {\n id: CustomProviders.test,\n name: \"Test LLM\",\n requiresApiKey: false,\n requiresEndpointUrl: false,\n supportSearch: false,\n },\n};\nexport const SupportedProvidersList = {\n ...ProviderList,\n ...CustomProvidersList\n};\nexport const ExecutionEnvironmentRefPopulate = \"id name provider enabled_models default_model endpoint_url allowed_projects account created_at updated_at\";\n//# sourceMappingURL=environment.js.map","export var SupportedIntegrations;\n(function (SupportedIntegrations) {\n SupportedIntegrations[\"gladia\"] = \"gladia\";\n SupportedIntegrations[\"github\"] = \"github\";\n SupportedIntegrations[\"aws\"] = \"aws\";\n SupportedIntegrations[\"magic_pdf\"] = \"magic_pdf\";\n SupportedIntegrations[\"serper\"] = \"serper\";\n SupportedIntegrations[\"exa\"] = \"exa\";\n SupportedIntegrations[\"linkup\"] = \"linkup\";\n SupportedIntegrations[\"resend\"] = \"resend\";\n SupportedIntegrations[\"ask_user_webhook\"] = \"ask_user_webhook\";\n})(SupportedIntegrations || (SupportedIntegrations = {}));\n//# sourceMappingURL=integrations.js.map","export var MeterNames;\n(function (MeterNames) {\n MeterNames[\"analyzed_pages\"] = \"analyzed_pages\";\n MeterNames[\"extracted_tables\"] = \"extracted_tables\";\n MeterNames[\"analyzed_images\"] = \"analyzed_images\";\n MeterNames[\"input_token_used\"] = \"input_token_used\";\n MeterNames[\"output_token_used\"] = \"output_token_used\";\n MeterNames[\"task_run\"] = \"task_run\";\n})(MeterNames || (MeterNames = {}));\n//# sourceMappingURL=meters.js.map","export var ProjectRoles;\n(function (ProjectRoles) {\n ProjectRoles[\"owner\"] = \"owner\";\n ProjectRoles[\"admin\"] = \"admin\";\n ProjectRoles[\"manager\"] = \"manager\";\n ProjectRoles[\"developer\"] = \"developer\";\n ProjectRoles[\"application\"] = \"application\";\n ProjectRoles[\"consumer\"] = \"consumer\";\n ProjectRoles[\"executor\"] = \"executor\";\n ProjectRoles[\"reader\"] = \"reader\";\n ProjectRoles[\"billing\"] = \"billing\";\n ProjectRoles[\"member\"] = \"member\";\n ProjectRoles[\"app_member\"] = \"app_member\";\n ProjectRoles[\"content_superadmin\"] = \"content_superadmin\";\n})(ProjectRoles || (ProjectRoles = {}));\nexport function isRoleIncludedIn(role, includingRole) {\n switch (includingRole) {\n case ProjectRoles.owner:\n return true; // includes billing to?\n case ProjectRoles.admin:\n return role !== ProjectRoles.billing && role !== ProjectRoles.owner;\n case ProjectRoles.developer:\n return role === ProjectRoles.developer;\n case ProjectRoles.billing:\n return role === ProjectRoles.billing;\n default:\n return false;\n }\n}\nexport var ResourceVisibility;\n(function (ResourceVisibility) {\n ResourceVisibility[\"public\"] = \"public\";\n ResourceVisibility[\"account\"] = \"account\";\n ResourceVisibility[\"project\"] = \"project\";\n})(ResourceVisibility || (ResourceVisibility = {}));\n/**\n * System interaction category enum.\n * Categories group one or more system interactions for default model assignment.\n */\nexport var SystemInteractionCategory;\n(function (SystemInteractionCategory) {\n SystemInteractionCategory[\"content_type\"] = \"content_type\";\n SystemInteractionCategory[\"intake\"] = \"intake\";\n SystemInteractionCategory[\"analysis\"] = \"analysis\";\n SystemInteractionCategory[\"non_applicable\"] = \"non_applicable\";\n})(SystemInteractionCategory || (SystemInteractionCategory = {}));\n/**\n * Map system interaction endpoints to categories.\n */\nexport const SYSTEM_INTERACTION_CATEGORIES = {\n \"ExtractInformation\": SystemInteractionCategory.intake,\n \"SelectDocumentType\": SystemInteractionCategory.intake,\n \"GenerateMetadataModel\": SystemInteractionCategory.content_type,\n \"ChunkDocument\": SystemInteractionCategory.intake,\n \"IdentifyTextSections\": SystemInteractionCategory.intake,\n \"AnalyzeDocument\": SystemInteractionCategory.analysis,\n \"ReduceTextSections\": SystemInteractionCategory.analysis,\n \"GenericAgent\": SystemInteractionCategory.non_applicable,\n \"AdhocTaskAgent\": SystemInteractionCategory.non_applicable,\n \"Mediator\": SystemInteractionCategory.non_applicable,\n \"AnalyzeConversation\": SystemInteractionCategory.analysis,\n \"GetAgentConversationTopic\": SystemInteractionCategory.analysis,\n};\n/**\n * Get category for a system interaction endpoint.\n * Returns undefined if category is non-applicable or endpoint is not recognized.\n * Note: Caller is responsible for determining if the interaction is a system interaction.\n * @param endpoint - The interaction endpoint name\n */\nexport function getSystemInteractionCategory(endpoint) {\n if (endpoint.startsWith(\"sys:\")) {\n // Strip sys: prefix\n endpoint = endpoint.substring(4);\n }\n const category = SYSTEM_INTERACTION_CATEGORIES[endpoint];\n if (category === SystemInteractionCategory.non_applicable) {\n return undefined;\n }\n return category || undefined;\n}\n// export interface ProjectConfigurationEmbeddings {\n// environment: string;\n// max_tokens: number;\n// dimensions: number;\n// model?: string;\n// }\nexport var SupportedEmbeddingTypes;\n(function (SupportedEmbeddingTypes) {\n SupportedEmbeddingTypes[\"text\"] = \"text\";\n SupportedEmbeddingTypes[\"image\"] = \"image\";\n SupportedEmbeddingTypes[\"properties\"] = \"properties\";\n})(SupportedEmbeddingTypes || (SupportedEmbeddingTypes = {}));\nexport var FullTextType;\n(function (FullTextType) {\n FullTextType[\"full_text\"] = \"full_text\";\n})(FullTextType || (FullTextType = {}));\nexport const SearchTypes = {\n ...SupportedEmbeddingTypes,\n ...FullTextType\n};\nexport const ProjectRefPopulate = \"id name account\";\n/**\n * Supported languages for full-text search with their display names.\n * Maps ISO 639-1 codes to human-readable language names.\n */\nexport const SUPPORTED_SEARCH_LANGUAGES = {\n en: 'English',\n zh: 'Chinese',\n es: 'Spanish',\n hi: 'Hindi',\n ar: 'Arabic',\n pt: 'Portuguese',\n bn: 'Bengali',\n ru: 'Russian',\n ja: 'Japanese',\n de: 'German',\n fr: 'French',\n ko: 'Korean',\n it: 'Italian',\n tr: 'Turkish',\n vi: 'Vietnamese',\n pl: 'Polish',\n uk: 'Ukrainian',\n nl: 'Dutch',\n th: 'Thai',\n el: 'Greek',\n cs: 'Czech',\n sv: 'Swedish',\n ro: 'Romanian',\n hu: 'Hungarian',\n da: 'Danish',\n fi: 'Finnish',\n no: 'Norwegian',\n he: 'Hebrew',\n id: 'Indonesian',\n fa: 'Persian',\n};\n//# sourceMappingURL=project.js.map","export var PromptStatus;\n(function (PromptStatus) {\n PromptStatus[\"draft\"] = \"draft\";\n PromptStatus[\"published\"] = \"published\";\n PromptStatus[\"archived\"] = \"archived\";\n})(PromptStatus || (PromptStatus = {}));\nexport var PromptSegmentDefType;\n(function (PromptSegmentDefType) {\n PromptSegmentDefType[\"chat\"] = \"chat\";\n PromptSegmentDefType[\"template\"] = \"template\";\n})(PromptSegmentDefType || (PromptSegmentDefType = {}));\nexport var TemplateType;\n(function (TemplateType) {\n TemplateType[\"jst\"] = \"jst\";\n TemplateType[\"handlebars\"] = \"handlebars\";\n TemplateType[\"text\"] = \"text\";\n})(TemplateType || (TemplateType = {}));\n//# sourceMappingURL=prompt.js.map","export var ResolvableRefType;\n(function (ResolvableRefType) {\n ResolvableRefType[\"project\"] = \"Project\";\n ResolvableRefType[\"projects\"] = \"Projects\";\n ResolvableRefType[\"environment\"] = \"Environment\";\n ResolvableRefType[\"user\"] = \"User\";\n ResolvableRefType[\"account\"] = \"Account\";\n ResolvableRefType[\"interaction\"] = \"Interaction\";\n ResolvableRefType[\"userGroup\"] = \"UserGroup\";\n})(ResolvableRefType || (ResolvableRefType = {}));\n//# sourceMappingURL=refs.js.map","export var CollectionStatus;\n(function (CollectionStatus) {\n CollectionStatus[\"active\"] = \"active\";\n CollectionStatus[\"archived\"] = \"archived\";\n})(CollectionStatus || (CollectionStatus = {}));\n//# sourceMappingURL=collections.js.map","export var ContentObjectApiHeaders;\n(function (ContentObjectApiHeaders) {\n ContentObjectApiHeaders[\"COLLECTION_ID\"] = \"x-collection-id\";\n ContentObjectApiHeaders[\"PROCESSING_PRIORITY\"] = \"x-processing-priority\";\n ContentObjectApiHeaders[\"CREATE_REVISION\"] = \"x-create-revision\";\n ContentObjectApiHeaders[\"REVISION_LABEL\"] = \"x-revision-label\";\n /** When set to 'true', prevents this update from triggering workflow rules */\n ContentObjectApiHeaders[\"SUPPRESS_WORKFLOWS\"] = \"x-suppress-workflows\";\n})(ContentObjectApiHeaders || (ContentObjectApiHeaders = {}));\n/**\n * Headers for Data Store API calls.\n * Used for Cloud Run session affinity to route requests to the same instance.\n */\nexport var DataStoreApiHeaders;\n(function (DataStoreApiHeaders) {\n /** Data store ID for session affinity - routes requests for same store to same instance */\n DataStoreApiHeaders[\"DATA_STORE_ID\"] = \"x-data-store-id\";\n})(DataStoreApiHeaders || (DataStoreApiHeaders = {}));\nexport var ContentObjectStatus;\n(function (ContentObjectStatus) {\n ContentObjectStatus[\"created\"] = \"created\";\n ContentObjectStatus[\"processing\"] = \"processing\";\n ContentObjectStatus[\"ready\"] = \"ready\";\n ContentObjectStatus[\"completed\"] = \"completed\";\n ContentObjectStatus[\"failed\"] = \"failed\";\n ContentObjectStatus[\"archived\"] = \"archived\";\n})(ContentObjectStatus || (ContentObjectStatus = {}));\nexport var ContentNature;\n(function (ContentNature) {\n ContentNature[\"Video\"] = \"video\";\n ContentNature[\"Image\"] = \"image\";\n ContentNature[\"Audio\"] = \"audio\";\n ContentNature[\"Document\"] = \"document\";\n ContentNature[\"Code\"] = \"code\";\n ContentNature[\"Other\"] = \"other\";\n})(ContentNature || (ContentNature = {}));\nexport const POSTER_RENDITION_NAME = \"Poster\";\nexport const AUDIO_RENDITION_NAME = \"Audio\";\nexport const WEB_VIDEO_RENDITION_NAME = \"Web\";\nexport const PDF_RENDITION_NAME = \"PDF\";\nexport function getContentTypeRefId(type) {\n return type.id || type.code;\n}\n/**\n * Returns true if the type id represents an in-code type (system or app-contributed).\n * In-code types use colon-separated ids like \"sys:Invoice\" or \"app:myapp:Article\".\n * These types are read-only and cannot be edited through the UI.\n */\nexport function isInCodeType(typeId) {\n return typeId.includes(':');\n}\nexport var WorkflowRuleInputType;\n(function (WorkflowRuleInputType) {\n WorkflowRuleInputType[\"single\"] = \"single\";\n WorkflowRuleInputType[\"multiple\"] = \"multiple\";\n WorkflowRuleInputType[\"none\"] = \"none\";\n})(WorkflowRuleInputType || (WorkflowRuleInputType = {}));\nexport var ImageRenditionFormat;\n(function (ImageRenditionFormat) {\n ImageRenditionFormat[\"jpeg\"] = \"jpeg\";\n ImageRenditionFormat[\"png\"] = \"png\";\n ImageRenditionFormat[\"webp\"] = \"webp\";\n})(ImageRenditionFormat || (ImageRenditionFormat = {}));\nexport var MarkdownRenditionFormat;\n(function (MarkdownRenditionFormat) {\n MarkdownRenditionFormat[\"docx\"] = \"docx\";\n MarkdownRenditionFormat[\"pdf\"] = \"pdf\";\n})(MarkdownRenditionFormat || (MarkdownRenditionFormat = {}));\n/**\n * Matrix of supported content type → format conversions.\n * This is the authoritative source of truth for what renditions can be generated.\n *\n * Key patterns:\n * - Exact MIME types (e.g., 'application/pdf')\n * - Wildcard patterns (e.g., 'image/*', 'video/*')\n */\nconst RENDITION_COMPATIBILITY = {\n // Image formats can generate: jpeg, png, webp\n 'image/*': [ImageRenditionFormat.jpeg, ImageRenditionFormat.png, ImageRenditionFormat.webp],\n // Video formats can generate: jpeg, png (thumbnails)\n 'video/*': [ImageRenditionFormat.jpeg, ImageRenditionFormat.png],\n // PDF can generate: jpeg, png, webp (page images)\n 'application/pdf': [ImageRenditionFormat.jpeg, ImageRenditionFormat.png, ImageRenditionFormat.webp],\n // Markdown can generate: pdf, docx (NOT jpeg/png)\n 'text/markdown': [MarkdownRenditionFormat.pdf, MarkdownRenditionFormat.docx],\n // Any text/* can generate: docx (editable export)\n 'text/*': [MarkdownRenditionFormat.docx],\n // Office documents can generate: pdf\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': [MarkdownRenditionFormat.pdf],\n 'application/msword': [MarkdownRenditionFormat.pdf],\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation': [MarkdownRenditionFormat.pdf],\n 'application/vnd.ms-powerpoint': [MarkdownRenditionFormat.pdf],\n};\n/**\n * Check if a specific rendition format can be generated from a content type.\n *\n * @param contentType - The MIME type of the source content (e.g., 'image/png', 'text/markdown')\n * @param format - The desired rendition format (e.g., ImageRenditionFormat.jpeg)\n * @returns true if the format can be generated from the content type\n *\n * @example\n * canGenerateRendition('image/png', ImageRenditionFormat.jpeg) // true\n * canGenerateRendition('text/markdown', ImageRenditionFormat.jpeg) // false\n * canGenerateRendition('text/markdown', MarkdownRenditionFormat.pdf) // true\n */\nexport function canGenerateRendition(contentType, format) {\n if (!contentType)\n return false;\n const formatStr = typeof format === 'string' ? format : format;\n // Check exact match first\n const exactMatch = RENDITION_COMPATIBILITY[contentType];\n if (exactMatch && exactMatch.some(f => f === formatStr)) {\n return true;\n }\n // Check wildcard patterns (e.g., 'image/*', 'video/*')\n const [category] = contentType.split('/');\n const wildcardKey = `${category}/*`;\n const wildcardMatch = RENDITION_COMPATIBILITY[wildcardKey];\n if (wildcardMatch && wildcardMatch.some(f => f === formatStr)) {\n return true;\n }\n return false;\n}\n/**\n * Get the list of rendition formats supported for a given content type.\n *\n * @param contentType - The MIME type of the source content\n * @returns Array of supported rendition formats, or empty array if none\n *\n * @example\n * getSupportedRenditionFormats('image/png') // [jpeg, png, webp]\n * getSupportedRenditionFormats('text/markdown') // [pdf, docx]\n * getSupportedRenditionFormats('text/html') // []\n */\nexport function getSupportedRenditionFormats(contentType) {\n if (!contentType)\n return [];\n // Check exact match first\n if (RENDITION_COMPATIBILITY[contentType]) {\n return [...RENDITION_COMPATIBILITY[contentType]];\n }\n // Check wildcard patterns\n const [category] = contentType.split('/');\n const wildcardKey = `${category}/*`;\n const wildcardMatch = RENDITION_COMPATIBILITY[wildcardKey];\n if (wildcardMatch) {\n return [...wildcardMatch];\n }\n return [];\n}\n/**\n * Check if a content type supports visual (image) renditions.\n * This is useful for determining if a document can have thumbnails/previews.\n *\n * @param contentType - The MIME type of the source content\n * @returns true if the content type can generate JPEG renditions\n *\n * @example\n * supportsVisualRendition('image/png') // true\n * supportsVisualRendition('application/pdf') // true\n * supportsVisualRendition('text/markdown') // false\n */\nexport function supportsVisualRendition(contentType) {\n return canGenerateRendition(contentType, ImageRenditionFormat.jpeg);\n}\nexport var ContentObjectProcessingPriority;\n(function (ContentObjectProcessingPriority) {\n ContentObjectProcessingPriority[\"normal\"] = \"normal\";\n ContentObjectProcessingPriority[\"low\"] = \"low\";\n})(ContentObjectProcessingPriority || (ContentObjectProcessingPriority = {}));\n//# sourceMappingURL=store.js.map","export var ContentEventName;\n(function (ContentEventName) {\n ContentEventName[\"create\"] = \"create\";\n ContentEventName[\"change_type\"] = \"change_type\";\n ContentEventName[\"update\"] = \"update\";\n ContentEventName[\"revision_created\"] = \"revision_created\";\n ContentEventName[\"delete\"] = \"delete\";\n ContentEventName[\"workflow_finished\"] = \"workflow_finished\";\n ContentEventName[\"workflow_execution_request\"] = \"workflow_execution_request\";\n ContentEventName[\"api_request\"] = \"api_request\";\n})(ContentEventName || (ContentEventName = {}));\nexport function getDocumentIds(payload) {\n // Check new input format first\n if (payload.input?.inputType === 'objectIds') {\n return payload.input.objectIds;\n }\n // Fall back to legacy objectIds field\n if (payload.objectIds) {\n return payload.objectIds;\n }\n return [];\n}\n// Task status enum for processed history\nexport var TaskStatus;\n(function (TaskStatus) {\n TaskStatus[\"SCHEDULED\"] = \"scheduled\";\n TaskStatus[\"RUNNING\"] = \"running\";\n TaskStatus[\"COMPLETED\"] = \"completed\";\n TaskStatus[\"FAILED\"] = \"failed\";\n TaskStatus[\"CANCELED\"] = \"canceled\";\n TaskStatus[\"TIMED_OUT\"] = \"timed_out\";\n TaskStatus[\"TERMINATED\"] = \"terminated\";\n TaskStatus[\"SENT\"] = \"sent\";\n TaskStatus[\"RECEIVED\"] = \"received\";\n})(TaskStatus || (TaskStatus = {}));\n// Task type enum\nexport var TaskType;\n(function (TaskType) {\n TaskType[\"ACTIVITY\"] = \"activity\";\n TaskType[\"CHILD_WORKFLOW\"] = \"childWorkflow\";\n TaskType[\"SIGNAL\"] = \"signal\";\n TaskType[\"TIMER\"] = \"timer\";\n})(TaskType || (TaskType = {}));\nexport var WorkflowExecutionStatus;\n(function (WorkflowExecutionStatus) {\n WorkflowExecutionStatus[WorkflowExecutionStatus[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n WorkflowExecutionStatus[WorkflowExecutionStatus[\"RUNNING\"] = 1] = \"RUNNING\";\n WorkflowExecutionStatus[WorkflowExecutionStatus[\"COMPLETED\"] = 2] = \"COMPLETED\";\n WorkflowExecutionStatus[WorkflowExecutionStatus[\"FAILED\"] = 3] = \"FAILED\";\n WorkflowExecutionStatus[WorkflowExecutionStatus[\"CANCELED\"] = 4] = \"CANCELED\";\n WorkflowExecutionStatus[WorkflowExecutionStatus[\"TERMINATED\"] = 5] = \"TERMINATED\";\n WorkflowExecutionStatus[WorkflowExecutionStatus[\"CONTINUED_AS_NEW\"] = 6] = \"CONTINUED_AS_NEW\";\n WorkflowExecutionStatus[WorkflowExecutionStatus[\"TIMED_OUT\"] = 7] = \"TIMED_OUT\";\n})(WorkflowExecutionStatus || (WorkflowExecutionStatus = {}));\nexport var AgentMessageType;\n(function (AgentMessageType) {\n AgentMessageType[AgentMessageType[\"SYSTEM\"] = 0] = \"SYSTEM\";\n AgentMessageType[AgentMessageType[\"THOUGHT\"] = 1] = \"THOUGHT\";\n AgentMessageType[AgentMessageType[\"PLAN\"] = 2] = \"PLAN\";\n AgentMessageType[AgentMessageType[\"UPDATE\"] = 3] = \"UPDATE\";\n AgentMessageType[AgentMessageType[\"COMPLETE\"] = 4] = \"COMPLETE\";\n AgentMessageType[AgentMessageType[\"WARNING\"] = 5] = \"WARNING\";\n AgentMessageType[AgentMessageType[\"ERROR\"] = 6] = \"ERROR\";\n AgentMessageType[AgentMessageType[\"ANSWER\"] = 7] = \"ANSWER\";\n AgentMessageType[AgentMessageType[\"QUESTION\"] = 8] = \"QUESTION\";\n AgentMessageType[AgentMessageType[\"REQUEST_INPUT\"] = 9] = \"REQUEST_INPUT\";\n AgentMessageType[AgentMessageType[\"IDLE\"] = 10] = \"IDLE\";\n AgentMessageType[AgentMessageType[\"TERMINATED\"] = 11] = \"TERMINATED\";\n AgentMessageType[AgentMessageType[\"STREAMING_CHUNK\"] = 12] = \"STREAMING_CHUNK\";\n AgentMessageType[AgentMessageType[\"BATCH_PROGRESS\"] = 13] = \"BATCH_PROGRESS\";\n AgentMessageType[AgentMessageType[\"RESTARTING\"] = 14] = \"RESTARTING\";\n})(AgentMessageType || (AgentMessageType = {}));\n// Type guards — check both message type and details shape for safety\nexport function isToolCallMessage(msg) {\n return msg.type === AgentMessageType.THOUGHT &&\n !!msg.details &&\n typeof msg.details === 'object' &&\n typeof msg.details.tool === 'string';\n}\nexport function isDocumentEventMessage(msg) {\n return msg.type === AgentMessageType.UPDATE &&\n !!msg.details &&\n typeof msg.details === 'object' &&\n (msg.details.event_class === 'document_created' || msg.details.event_class === 'document_updated') &&\n typeof msg.details.document_id === 'string';\n}\nexport function isFileProcessingMessage(msg) {\n return msg.type === AgentMessageType.SYSTEM &&\n !!msg.details &&\n typeof msg.details === 'object' &&\n msg.details.system_type === 'file_processing' &&\n Array.isArray(msg.details.files);\n}\nexport function isPlanMessage(msg) {\n return msg.type === AgentMessageType.PLAN &&\n !!msg.details &&\n typeof msg.details === 'object' &&\n Array.isArray(msg.details.plan);\n}\nexport function isRequestInputMessage(msg) {\n return msg.type === AgentMessageType.REQUEST_INPUT &&\n !!msg.details &&\n typeof msg.details === 'object';\n}\n// ============================================\n// TYPE GUARDS\n// ============================================\n/**\n * Check if a message is in compact format\n */\nexport function isCompactMessage(msg) {\n return typeof msg === 'object' && msg !== null && 't' in msg;\n}\n/**\n * Check if a message is in legacy format\n */\nexport function isLegacyMessage(msg) {\n return typeof msg === 'object' && msg !== null && 'type' in msg && !('t' in msg);\n}\n// ============================================\n// CONVERTERS\n// ============================================\n/**\n * Map old string enum values to AgentMessageType\n */\nconst STRING_TO_TYPE_MAP = {\n 'system': AgentMessageType.SYSTEM,\n 'thought': AgentMessageType.THOUGHT,\n 'plan': AgentMessageType.PLAN,\n 'update': AgentMessageType.UPDATE,\n 'complete': AgentMessageType.COMPLETE,\n 'warning': AgentMessageType.WARNING,\n 'error': AgentMessageType.ERROR,\n 'answer': AgentMessageType.ANSWER,\n 'question': AgentMessageType.QUESTION,\n 'request_input': AgentMessageType.REQUEST_INPUT,\n 'idle': AgentMessageType.IDLE,\n 'terminated': AgentMessageType.TERMINATED,\n 'streaming_chunk': AgentMessageType.STREAMING_CHUNK,\n 'batch_progress': AgentMessageType.BATCH_PROGRESS,\n};\n/**\n * Map integer values to AgentMessageType (primary format)\n */\nconst INT_TO_TYPE_MAP = {\n 0: AgentMessageType.SYSTEM,\n 1: AgentMessageType.THOUGHT,\n 2: AgentMessageType.PLAN,\n 3: AgentMessageType.UPDATE,\n 4: AgentMessageType.COMPLETE,\n 5: AgentMessageType.WARNING,\n 6: AgentMessageType.ERROR,\n 7: AgentMessageType.ANSWER,\n 8: AgentMessageType.QUESTION,\n 9: AgentMessageType.REQUEST_INPUT,\n 10: AgentMessageType.IDLE,\n 11: AgentMessageType.TERMINATED,\n 12: AgentMessageType.STREAMING_CHUNK,\n 13: AgentMessageType.BATCH_PROGRESS,\n};\n/**\n * Normalize message type from string or number to AgentMessageType\n */\nexport function normalizeMessageType(type) {\n // Handle integer type (current format and AgentMessageType enum values)\n if (typeof type === 'number') {\n return INT_TO_TYPE_MAP[type] ?? AgentMessageType.UPDATE;\n }\n // Handle string type (legacy messages from Redis with 90-day TTL)\n if (typeof type === 'string') {\n return STRING_TO_TYPE_MAP[type] ?? AgentMessageType.UPDATE;\n }\n return AgentMessageType.UPDATE;\n}\n/**\n * Convert legacy AgentMessage to CompactMessage\n */\nexport function toCompactMessage(legacy) {\n const compact = {\n t: normalizeMessageType(legacy.type),\n };\n if (legacy.message)\n compact.m = legacy.message;\n if (legacy.workstream_id && legacy.workstream_id !== 'main')\n compact.w = legacy.workstream_id;\n if (legacy.timestamp)\n compact.ts = legacy.timestamp;\n // Handle legacy streaming chunk details\n if (compact.t === AgentMessageType.STREAMING_CHUNK && legacy.details) {\n const d = legacy.details;\n if (d.is_final)\n compact.f = 1;\n // streaming_id and chunk_index are no longer needed\n }\n else if (legacy.details) {\n compact.d = legacy.details;\n }\n return compact;\n}\n/**\n * Parse any message format (compact or legacy) into CompactMessage.\n * Use this as the entry point for all received messages.\n */\nexport function parseMessage(data) {\n const parsed = typeof data === 'string' ? JSON.parse(data) : data;\n if (isCompactMessage(parsed))\n return parsed;\n if (isLegacyMessage(parsed))\n return toCompactMessage(parsed);\n throw new Error('Unknown message format');\n}\n/**\n * Create a compact message (convenience function for server-side)\n */\nexport function createCompactMessage(type, options = {}) {\n const compact = { t: type };\n if (options.message)\n compact.m = options.message;\n if (options.workstreamId && options.workstreamId !== 'main')\n compact.w = options.workstreamId;\n if (options.details)\n compact.d = options.details;\n if (options.isFinal)\n compact.f = 1;\n if (options.timestamp)\n compact.ts = options.timestamp;\n return compact;\n}\n/**\n * Convert CompactMessage back to AgentMessage (for UI components).\n * This allows UI to continue using familiar field names while wire format is compact.\n * @param compact The compact message to convert\n * @param workflowRunId Optional workflow_run_id (known from SSE context, not in compact format)\n */\nexport function toAgentMessage(compact, workflowRunId = '') {\n const message = {\n type: compact.t,\n timestamp: compact.ts || Date.now(),\n workflow_run_id: workflowRunId,\n message: compact.m || '',\n workstream_id: compact.w || 'main',\n };\n if (compact.d !== undefined)\n message.details = compact.d;\n // For streaming chunks, restore is_final and streaming_id in details\n // (streaming_id removed from wire format, use workstream_id as grouping key)\n if (compact.t === AgentMessageType.STREAMING_CHUNK) {\n message.details = {\n ...(typeof compact.d === 'object' ? compact.d : {}),\n streaming_id: compact.w || 'main', // Use workstream_id as streaming_id\n is_final: compact.f === 1,\n activity_id: compact.i, // For deduplication with final THOUGHT/ANSWER\n };\n }\n return message;\n}\n/**\n * Status of a file being processed for conversation use.\n */\nexport var FileProcessingStatus;\n(function (FileProcessingStatus) {\n /** File is being uploaded to artifact storage */\n FileProcessingStatus[\"UPLOADING\"] = \"uploading\";\n /** File uploaded, text extraction in progress */\n FileProcessingStatus[\"PROCESSING\"] = \"processing\";\n /** File is ready for use in conversation */\n FileProcessingStatus[\"READY\"] = \"ready\";\n /** File processing failed */\n FileProcessingStatus[\"ERROR\"] = \"error\";\n})(FileProcessingStatus || (FileProcessingStatus = {}));\n/**\n * Get the Redis pub/sub channel name for workflow messages.\n * Used by both publishers (workflow activities, studio-server) and subscribers (zeno-server, clients).\n * @param workflowRunId - The Temporal workflow run ID (NOT the interaction execution run ID)\n */\nexport function getWorkflowChannel(workflowRunId) {\n return `workflow:${workflowRunId}:channel`;\n}\n/**\n * Get the Redis list key for storing workflow message history.\n * Messages are stored here for retrieval by reconnecting clients.\n * @param workflowRunId - The Temporal workflow run ID (NOT the interaction execution run ID)\n */\nexport function getWorkflowUpdatesKey(workflowRunId) {\n return `workflow:${workflowRunId}:updates`;\n}\nexport const LOW_PRIORITY_TASK_QUEUE = \"low_priority\";\n//# sourceMappingURL=workflow.js.map","export var TrainingSessionStatus;\n(function (TrainingSessionStatus) {\n TrainingSessionStatus[\"created\"] = \"created\";\n TrainingSessionStatus[\"building\"] = \"building\";\n TrainingSessionStatus[\"prepared\"] = \"prepared\";\n TrainingSessionStatus[\"processing\"] = \"processing\";\n TrainingSessionStatus[\"completed\"] = \"completed\";\n TrainingSessionStatus[\"cancelled\"] = \"cancelled\";\n TrainingSessionStatus[\"failed\"] = \"failed\";\n})(TrainingSessionStatus || (TrainingSessionStatus = {}));\n//# sourceMappingURL=training.js.map","export var TransientTokenType;\n(function (TransientTokenType) {\n TransientTokenType[\"userInvite\"] = \"user-invite\";\n TransientTokenType[\"migration\"] = \"migration\";\n})(TransientTokenType || (TransientTokenType = {}));\n//# sourceMappingURL=transient-tokens.js.map","export const UserRefPopulate = \"id name email picture\";\nexport var Datacenters;\n(function (Datacenters) {\n Datacenters[\"aws\"] = \"aws\";\n Datacenters[\"gcp\"] = \"gcp\";\n Datacenters[\"azure\"] = \"azure\";\n})(Datacenters || (Datacenters = {}));\nexport var BillingMethod;\n(function (BillingMethod) {\n BillingMethod[\"stripe\"] = \"stripe\";\n BillingMethod[\"invoice\"] = \"invoice\";\n})(BillingMethod || (BillingMethod = {}));\nexport var AccountType;\n(function (AccountType) {\n AccountType[\"vertesia\"] = \"vertesia\";\n AccountType[\"partner\"] = \"partner\";\n AccountType[\"free\"] = \"free\";\n AccountType[\"customer\"] = \"customer\";\n AccountType[\"unknown\"] = \"unknown\";\n})(AccountType || (AccountType = {}));\nexport const AccountRefPopulate = \"id name\";\n//# sourceMappingURL=user.js.map","export var ApiVersions;\n(function (ApiVersions) {\n ApiVersions[ApiVersions[\"COMPLETION_RESULT_V1\"] = 20250925] = \"COMPLETION_RESULT_V1\";\n ApiVersions[ApiVersions[\"DOWNLOAD_URL_NO_MIME_TYPE_V1\"] = 20260210] = \"DOWNLOAD_URL_NO_MIME_TYPE_V1\";\n ApiVersions[ApiVersions[\"MEDIA_BLOB_STORAGE_V1\"] = 20260319] = \"MEDIA_BLOB_STORAGE_V1\";\n})(ApiVersions || (ApiVersions = {}));\n//# sourceMappingURL=versions.js.map","/**\n * Agent Observability Telemetry Types\n *\n * These types define the event-based model for agent observability.\n */\n// ============================================================================\n// Enums\n// ============================================================================\n/**\n * Types of telemetry events\n */\nexport var AgentEventType;\n(function (AgentEventType) {\n AgentEventType[\"AgentRunStarted\"] = \"agent_run_started\";\n AgentEventType[\"AgentRunCompleted\"] = \"agent_run_completed\";\n AgentEventType[\"LlmCall\"] = \"llm_call\";\n AgentEventType[\"ToolCall\"] = \"tool_call\";\n})(AgentEventType || (AgentEventType = {}));\n/**\n * Types of LLM calls in a conversation\n */\nexport var LlmCallType;\n(function (LlmCallType) {\n /** Initial conversation start */\n LlmCallType[\"Start\"] = \"start\";\n /** Resuming with tool results */\n LlmCallType[\"ResumeTools\"] = \"resume_tools\";\n /** Resuming with user message */\n LlmCallType[\"ResumeUser\"] = \"resume_user\";\n /** Checkpoint resume (after conversation summarization) */\n LlmCallType[\"Checkpoint\"] = \"checkpoint\";\n /** Nested interaction call from within tools */\n LlmCallType[\"NestedInteraction\"] = \"nested_interaction\";\n})(LlmCallType || (LlmCallType = {}));\n/**\n * Types of tools that can be called\n */\nexport var TelemetryToolType;\n(function (TelemetryToolType) {\n /** Built-in tools (e.g., plan, search) */\n TelemetryToolType[\"Builtin\"] = \"builtin\";\n /** Interaction-based tools */\n TelemetryToolType[\"Interaction\"] = \"interaction\";\n /** Remote/MCP tools */\n TelemetryToolType[\"Remote\"] = \"remote\";\n /** Skill tools */\n TelemetryToolType[\"Skill\"] = \"skill\";\n})(TelemetryToolType || (TelemetryToolType = {}));\n//# sourceMappingURL=workflow-analytics.js.map","/**\n * Prompt transformer preset for template files with frontmatter\n * Supports .jst, .hbs, and plain text files\n */\nimport { z } from 'zod';\nimport { parseFrontmatter } from '../parsers/frontmatter.js';\nimport path from 'path';\nimport { TemplateType } from '@vertesia/common';\nimport { PromptRole } from '@llumiverse/common';\n/**\n * Re-export types for backwards compatibility\n */\nexport { TemplateType, PromptRole };\n/**\n * Zod schema for prompt frontmatter validation\n */\nconst PromptFrontmatterSchema = z.object({\n // Required fields\n role: z.nativeEnum(PromptRole, {\n errorMap: () => ({ message: 'Role must be one of: safety, system, user, assistant, negative' })\n }),\n // Optional fields\n content_type: z.nativeEnum(TemplateType).optional(),\n schema: z.string().optional(),\n name: z.string().optional(),\n externalId: z.string().optional(),\n}).strict();\n/**\n * MUST be kept in sync with @vertesia/common InCodePrompt\n * Zod schema for prompt definition\n */\nexport const PromptDefinitionSchema = z.object({\n role: z.nativeEnum(PromptRole),\n content: z.string(),\n content_type: z.nativeEnum(TemplateType),\n schema: z.any().optional(),\n name: z.string().optional(),\n externalId: z.string().optional(),\n});\n/**\n * Normalize schema path for import\n * - Adds './' prefix if not a relative path\n * - Replaces .ts with .js\n * - Adds .js if no extension\n *\n * @param schemaPath - Original schema path from frontmatter\n * @returns Normalized path for ES module import\n */\nfunction normalizeSchemaPath(schemaPath) {\n let normalized = schemaPath.trim();\n // Add './' prefix if not already a relative path\n if (!normalized.startsWith('.')) {\n normalized = './' + normalized;\n }\n // Get the extension\n const ext = path.extname(normalized);\n if (ext === '.ts') {\n // Replace .ts with .js\n normalized = normalized.slice(0, -3) + '.js';\n }\n else if (!ext) {\n // No extension, add .js\n normalized = normalized + '.js';\n }\n // If extension is already .js or something else, leave as is\n return normalized;\n}\n/**\n * Infer content type from file extension\n *\n * @param filePath - Path to the prompt file\n * @returns Inferred content type\n */\nfunction inferContentType(filePath) {\n const ext = path.extname(filePath).toLowerCase();\n switch (ext) {\n case '.jst':\n return TemplateType.jst;\n case '.hbs':\n return TemplateType.handlebars;\n default:\n return TemplateType.text;\n }\n}\n/**\n * Build a PromptDefinition from frontmatter and content\n *\n * @param frontmatter - Parsed frontmatter object\n * @param content - Prompt content (body of the file)\n * @param filePath - Path to the prompt file (for content type inference)\n * @returns Prompt definition object and optional imports\n */\nfunction buildPromptDefinition(frontmatter, content, filePath) {\n // Determine content type from frontmatter or file extension\n const content_type = frontmatter.content_type || inferContentType(filePath);\n const prompt = {\n role: frontmatter.role,\n content,\n content_type,\n };\n // Add optional fields\n if (frontmatter.name) {\n prompt.name = frontmatter.name;\n }\n if (frontmatter.externalId) {\n prompt.externalId = frontmatter.externalId;\n }\n // Handle schema import if specified\n let imports;\n let schemaImportName;\n if (frontmatter.schema) {\n const normalizedPath = normalizeSchemaPath(frontmatter.schema);\n schemaImportName = '__promptSchema';\n imports = [`import ${schemaImportName} from '${normalizedPath}';`];\n }\n return { prompt, imports, schemaImportName };\n}\n/**\n * Prompt transformer preset\n * Transforms template files with ?prompt suffix into prompt definition objects\n *\n * Supported file types:\n * - .jst (JavaScript template literals) → content_type: 'jst'\n * - .hbs (Handlebars templates) → content_type: 'handlebars'\n * - .txt or other → content_type: 'text'\n *\n * @example\n * ```typescript\n * import PROMPT from './prompt.hbs?prompt';\n * // PROMPT is an InCodePrompt object\n * ```\n */\nexport const promptTransformer = {\n pattern: /\\?prompt$/,\n schema: PromptDefinitionSchema,\n transform: (content, filePath) => {\n const { frontmatter, content: promptContent } = parseFrontmatter(content);\n // Validate frontmatter\n const frontmatterValidation = PromptFrontmatterSchema.safeParse(frontmatter);\n if (!frontmatterValidation.success) {\n const errors = frontmatterValidation.error.errors\n .map((err) => {\n const path = err.path.length > 0 ? err.path.join('.') : 'frontmatter';\n return ` - ${path}: ${err.message}`;\n })\n .join('\\n');\n throw new Error(`Invalid frontmatter in ${filePath}:\\n${errors}`);\n }\n // Build prompt definition\n const { prompt, imports, schemaImportName } = buildPromptDefinition(frontmatter, promptContent, filePath);\n // If schema is specified, generate custom code with schema reference\n if (schemaImportName) {\n // Build the code manually to avoid JSON.stringify issues with schema reference\n const lines = [\n 'export default {',\n ` role: \"${prompt.role}\",`,\n ` content: ${JSON.stringify(prompt.content)},`,\n ` content_type: \"${prompt.content_type}\",`,\n ` schema: ${schemaImportName}`,\n ];\n if (prompt.name) {\n lines.splice(4, 0, ` name: ${JSON.stringify(prompt.name)},`);\n }\n if (prompt.externalId) {\n lines.splice(4, 0, ` externalId: ${JSON.stringify(prompt.externalId)},`);\n }\n lines.push('};');\n const code = lines.join('\\n');\n return {\n data: prompt,\n imports,\n code,\n };\n }\n // Standard case without schema\n return {\n data: prompt,\n };\n }\n};\n//# sourceMappingURL=prompt.js.map"],"names":["path"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vertesia/build-tools",
|
|
3
|
-
"version": "1.0.0
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Build tools for Vertesia projects - Rollup and Vite plugins for transforming imports, bundling skills, and compiling widgets",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/esm/index.js",
|
|
@@ -11,15 +11,22 @@
|
|
|
11
11
|
],
|
|
12
12
|
"license": "Apache-2.0",
|
|
13
13
|
"exports": {
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./lib/types/index.d.ts",
|
|
16
|
+
"import": "./lib/esm/index.js",
|
|
17
|
+
"require": "./lib/cjs/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./vite": {
|
|
20
|
+
"types": "./lib/types/vite.d.ts",
|
|
21
|
+
"import": "./lib/esm/vite.js",
|
|
22
|
+
"require": "./lib/cjs/vite.js"
|
|
23
|
+
}
|
|
17
24
|
},
|
|
18
25
|
"devDependencies": {
|
|
19
26
|
"@rollup/plugin-commonjs": "^28.0.3",
|
|
20
27
|
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
21
28
|
"@rollup/plugin-typescript": "^12.1.2",
|
|
22
|
-
"@types/node": "^
|
|
29
|
+
"@types/node": "^22.19.2",
|
|
23
30
|
"rollup": "^4.59.0",
|
|
24
31
|
"@rollup/plugin-terser": "^0.4.4",
|
|
25
32
|
"ts-dual-module": "^0.6.3",
|
|
@@ -29,8 +36,8 @@
|
|
|
29
36
|
"dependencies": {
|
|
30
37
|
"gray-matter": "^4.0.3",
|
|
31
38
|
"zod": "^3.24.1",
|
|
32
|
-
"@llumiverse/common": "1.0.0
|
|
33
|
-
"@vertesia/common": "1.0.0
|
|
39
|
+
"@llumiverse/common": "1.0.0",
|
|
40
|
+
"@vertesia/common": "1.0.0"
|
|
34
41
|
},
|
|
35
42
|
"peerDependencies": {
|
|
36
43
|
"rollup": "^4.59.0"
|