@botpress/adk 1.6.8 → 1.6.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -4494,10 +4494,10 @@ class AgentProjectGenerator {
4494
4494
  deploy: "adk deploy"
4495
4495
  },
4496
4496
  dependencies: {
4497
- "@botpress/runtime": `^${"1.6.8"}`
4497
+ "@botpress/runtime": `^${"1.6.9"}`
4498
4498
  },
4499
4499
  devDependencies: {
4500
- typescript: "^5.0.0"
4500
+ typescript: "^5.9.3"
4501
4501
  }
4502
4502
  };
4503
4503
  if (packageJson.packageManager === undefined) {
@@ -6529,7 +6529,7 @@ declare module "@botpress/runtime/_types/state" {
6529
6529
  },
6530
6530
  devDependencies: {
6531
6531
  "@types/node": "^22.16.4",
6532
- typescript: "^5.6.3"
6532
+ typescript: "^5.9.3"
6533
6533
  }
6534
6534
  };
6535
6535
  await createFile(path29.join(this.outputPath, "package.json"), JSON.stringify(packageJson, null, 2));
@@ -7336,5 +7336,5 @@ export {
7336
7336
  AgentProject
7337
7337
  };
7338
7338
 
7339
- //# debugId=C8730E71EB2EDE5A64756E2164756E21
7339
+ //# debugId=56B1DB5AE0C7FBE464756E2164756E21
7340
7340
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -42,12 +42,12 @@
42
42
  "import { InterfaceManager } from './manager.js'\nimport { BUILTIN_INTERFACES } from '../constants.js'\n\nexport interface AddInterfaceResult {\n success: boolean\n alias: string\n name: string\n newVersion?: string\n previousVersion?: string\n message?: string\n}\n\nexport interface InterfaceOperationsOptions {\n projectPath: string\n}\n\nexport class InterfaceOperations {\n private projectPath: string\n private manager: InterfaceManager\n\n constructor(options: InterfaceOperationsOptions) {\n this.projectPath = options.projectPath\n this.manager = new InterfaceManager()\n }\n\n async addInterface(_options: {\n name: string // may include workspace prefix (e.g., \"ws/name\")\n version?: string // optional, defaults to latest\n alias?: string\n }): Promise<AddInterfaceResult> {\n throw new Error(\n 'Interfaces are built-in constants and cannot be added. The following interfaces are always available: ' +\n Object.keys(BUILTIN_INTERFACES).join(', ')\n )\n }\n\n async updateInterface(_options: {\n alias: string\n name: string // may include workspace prefix\n version: string // desired version (or 'latest')\n previousVersion: string\n }): Promise<AddInterfaceResult> {\n throw new Error(\n 'Interfaces are built-in constants and cannot be updated. The following interfaces are always available: ' +\n Object.keys(BUILTIN_INTERFACES).join(', ')\n )\n }\n\n async removeInterface(_alias: string): Promise<boolean> {\n throw new Error(\n 'Interfaces are built-in constants and cannot be removed. The following interfaces are always available: ' +\n Object.keys(BUILTIN_INTERFACES).join(', ')\n )\n }\n\n async listInterfaces(): Promise<\n Array<{\n alias: string\n name: string\n version: string\n }>\n > {\n return Object.entries(BUILTIN_INTERFACES).map(([alias, versionString]) => {\n const [name, version] = versionString.split('@')\n return { alias, name: name || '', version: version || 'latest' }\n })\n }\n\n /**\n * Get latest version info for an interface by name\n */\n async getInterfaceLatestVersion(name: string): Promise<{ name: string; latestVersion: string }> {\n // Resolve latest via manager and return version\n const latest = await this.manager.getByDependencyString(`${name}@latest`)\n return { name, latestVersion: latest.version }\n }\n\n /**\n * Upgrade interface(s) to latest version\n */\n async upgradeInterface(_alias?: string): Promise<{ upgraded: string[]; failed: string[] }> {\n throw new Error(\n 'Interfaces are built-in constants and cannot be upgraded. The following interfaces are always available: ' +\n Object.keys(BUILTIN_INTERFACES).join(', ')\n )\n }\n}\n",
43
43
  "import { Primitives, Errors } from '@botpress/runtime/internal'\nimport { ValidationError, ValidationErrorCode, ValidationSeverity } from './types.js'\n\nexport interface ExpandExportsOptions {\n absolutePath: string\n relPath: string\n filename: string\n onWarning: (warning: ValidationError) => void\n}\n\n/**\n * Expands the exports of a module to include all properties,\n * including those on the default export if it is an object or array.\n * For example, exports of type `{ default: { a: 1, b: 2 } }`\n * will be expanded to `{ \"default.a\": 1, \"default.b\": 2 }`.\n *\n * @param options - Options for expanding exports\n * @returns A record of expanded exports\n */\nexport async function expandExports(options: ExpandExportsOptions): Promise<Record<string, unknown>> {\n const { absolutePath, relPath, filename, onWarning } = options\n let result: Record<string, unknown> = {}\n\n try {\n // Bust module cache by adding timestamp query parameter\n // This ensures we always get fresh imports on reload\n const importPath = `${absolutePath}?t=${Date.now()}`\n const exports = await import(importPath)\n\n if (typeof exports === 'object' && exports !== null) {\n for (const key of Object.keys(exports)) {\n try {\n result[key] = exports[key]\n } catch (error) {\n // Skip exports that throw on access\n if (Errors.isAdkError(error)) {\n onWarning({\n $type: 'ValidationError',\n code: ValidationErrorCode.INVALID_PRIMITIVE_DEFINITION,\n severity: ValidationSeverity.WARNING,\n message: error.message,\n file: relPath,\n hint: `Invalid primitive instantiation in ${filename} -> ${key}`,\n })\n }\n }\n }\n\n // Handle default exports\n if (typeof exports.default === 'object' && exports.default !== null) {\n try {\n const definition = Primitives.Definitions.getDefinition(exports.default)\n if (!definition) {\n // If not a primitive, expand the default export\n for (const key of Object.keys(exports.default)) {\n try {\n result[`default.${key}`] = exports.default[key]\n } catch (error) {\n if (Errors.isAdkError(error)) {\n onWarning({\n $type: 'ValidationError',\n code: ValidationErrorCode.INVALID_PRIMITIVE_DEFINITION,\n severity: ValidationSeverity.WARNING,\n message: error.message,\n file: relPath,\n hint: `Invalid primitive instantiation in ${filename} -> default.${key}`,\n })\n }\n }\n }\n }\n } catch (error) {\n // If accessing default throws, check if it's an ADK error\n if (Errors.isAdkError(error)) {\n onWarning({\n $type: 'ValidationError',\n code: ValidationErrorCode.INVALID_PRIMITIVE_DEFINITION,\n severity: ValidationSeverity.WARNING,\n message: error.message,\n file: relPath,\n hint: `Invalid primitive instantiation in ${filename} -> default`,\n })\n }\n }\n }\n }\n\n return result\n } catch (importError: any) {\n // Check if it's an ADK error thrown during primitive instantiation\n if (Errors.isAdkError(importError)) {\n onWarning({\n $type: 'ValidationError',\n code: ValidationErrorCode.INVALID_PRIMITIVE_DEFINITION,\n severity: ValidationSeverity.WARNING,\n message: importError.message,\n file: relPath,\n hint: `Invalid primitive instantiation in ${filename}`,\n })\n return {}\n }\n\n // Check error cause chain for ADK errors (handles module initialization errors)\n let currentError = importError\n while (currentError) {\n if (Errors.isAdkError(currentError)) {\n onWarning({\n $type: 'ValidationError',\n code: ValidationErrorCode.INVALID_PRIMITIVE_DEFINITION,\n severity: ValidationSeverity.WARNING,\n message: currentError.message,\n file: relPath,\n hint: `Invalid primitive instantiation in ${filename}`,\n })\n return {}\n }\n currentError = currentError.cause\n }\n\n // Re-throw other import errors\n throw importError\n }\n}\n",
44
44
  "import { watch, FSWatcher } from 'fs'\nimport { EventEmitter } from 'events'\nimport path from 'path'\nimport { FileChangeEvent, FileChangeType } from './types.js'\n\nexport interface FileWatcherOptions {\n ignore?: string[]\n debounce?: number\n}\n\nexport class FileWatcher extends EventEmitter {\n private watcher?: FSWatcher\n private debounceTimers: Map<string, ReturnType<typeof setTimeout>> = new Map()\n private ignoredPatterns: RegExp[]\n private debounceMs: number\n\n constructor(\n private basePath: string,\n options: FileWatcherOptions = {}\n ) {\n super()\n this.ignoredPatterns = (options.ignore || []).map((pattern) => {\n // Convert glob-like patterns to regex\n const regexPattern = pattern.replace(/\\./g, '\\\\.').replace(/\\*/g, '.*').replace(/\\?/g, '.')\n return new RegExp(`^${regexPattern}$`)\n })\n this.debounceMs = options.debounce || 100\n }\n\n start(): void {\n if (this.watcher) {\n throw new Error('Watcher already started')\n }\n\n this.watcher = watch(this.basePath, { recursive: true }, (eventType, filename) => {\n if (!filename) return\n\n const fullPath = path.join(this.basePath, filename)\n const relativePath = filename\n\n // Check if file should be ignored\n if (this.shouldIgnore(relativePath)) {\n return\n }\n\n // Debounce file changes\n const existingTimer = this.debounceTimers.get(fullPath)\n if (existingTimer) {\n clearTimeout(existingTimer)\n }\n\n const timer = setTimeout(() => {\n this.debounceTimers.delete(fullPath)\n\n let changeType: FileChangeType\n if (eventType === 'rename') {\n // In many cases, 'rename' means the file was added or deleted\n // We'd need to check if the file exists to determine which\n changeType = FileChangeType.Modified\n } else {\n changeType = FileChangeType.Modified\n }\n\n const event: FileChangeEvent = {\n type: changeType,\n path: fullPath,\n relativePath,\n }\n\n this.emit('change', event)\n }, this.debounceMs)\n\n this.debounceTimers.set(fullPath, timer)\n })\n\n this.watcher.on('error', (error) => {\n this.emit('error', error)\n })\n }\n\n stop(): void {\n if (!this.watcher) {\n return\n }\n\n // Clear all pending timers\n for (const timer of this.debounceTimers.values()) {\n clearTimeout(timer)\n }\n this.debounceTimers.clear()\n\n // Close the watcher\n this.watcher.close()\n this.watcher = undefined\n }\n\n private shouldIgnore(relativePath: string): boolean {\n // Always ignore some common patterns\n const defaultIgnored = [/^\\.git\\//, /^node_modules\\//, /^dist\\//, /^\\.adk\\//, /\\.DS_Store$/]\n\n const allPatterns = [...defaultIgnored, ...this.ignoredPatterns]\n return allPatterns.some((pattern) => pattern.test(relativePath))\n }\n}\n",
45
- "import * as fs from 'fs'\nimport * as path from 'path'\nimport { formatCode } from '../generators/utils.js'\nimport { Dependencies } from '../agent-project/types.js'\n\n// This constant is injected at build time by esbuild's define\ndeclare const __RUNTIME_VERSION__: string\n\nexport class AgentProjectGenerator {\n private projectPath: string\n private projectName: string\n private packageManager: string\n private template: string\n\n constructor(projectPath: string, packageManager: string = 'bun', template: string = 'blank') {\n this.projectPath = path.resolve(projectPath)\n this.projectName = path.basename(this.projectPath)\n this.packageManager = packageManager\n this.template = template\n }\n\n async generate(): Promise<void> {\n this.ensureEmptyDirectory()\n this.createPackageJson()\n this.createDependenciesJson()\n await this.createAgentConfig()\n this.createTsConfig()\n this.createAgentJson()\n this.createGitIgnore()\n await this.createReadme()\n await this.createSourceStructure()\n }\n\n private ensureEmptyDirectory(): void {\n // Ensure directory exists\n if (!fs.existsSync(this.projectPath)) {\n fs.mkdirSync(this.projectPath, { recursive: true })\n }\n\n // Check if directory is empty\n const files = fs.readdirSync(this.projectPath)\n if (files.length > 0) {\n throw new Error(`Directory ${this.projectPath} is not empty. Please use an empty directory.`)\n }\n }\n\n private createPackageJson(): void {\n const packageJson = {\n name: this.projectName,\n version: '1.0.0',\n description: `A Botpress Agent built with the ADK`,\n type: 'module',\n packageManager: this.packageManager === 'npm' ? undefined : `${this.packageManager}@latest`,\n scripts: {\n dev: 'adk dev',\n build: 'adk build',\n deploy: 'adk deploy',\n },\n dependencies: {\n '@botpress/runtime': `^${__RUNTIME_VERSION__}`,\n },\n devDependencies: {\n typescript: '^5.0.0',\n },\n }\n\n // Remove packageManager field if undefined (for npm)\n if (packageJson.packageManager === undefined) {\n delete (packageJson as any).packageManager\n }\n\n this.writeJsonFile('package.json', packageJson)\n }\n\n private createDependenciesJson(): void {\n const dependenciesJson: Dependencies = {\n integrations: {},\n }\n\n // Add default integrations for hello-world template\n if (this.template === 'hello-world') {\n dependenciesJson.integrations = {\n chat: {\n version: 'chat@latest',\n enabled: true,\n },\n webchat: {\n version: 'webchat@latest',\n enabled: true,\n },\n }\n }\n\n this.writeJsonFile('dependencies.json', dependenciesJson)\n }\n\n private async createAgentConfig(): Promise<void> {\n const defaultModels =\n this.template === 'hello-world'\n ? `\\n defaultModels: {\n autonomous: \"cerebras:gpt-oss-120b\",\n zai: \"cerebras:gpt-oss-120b\",\n },\\n`\n : ''\n\n const agentConfig = `import { z, defineConfig } from '@botpress/runtime';\n\nexport default defineConfig({\n name: '${this.projectName}',\n description: 'An AI agent built with Botpress ADK',\n${defaultModels}\n bot: {\n state: z.object({}),\n },\n\n user: {\n state: z.object({}),\n },\n});\n`\n\n await this.writeFormattedFile('agent.config.ts', agentConfig)\n }\n\n private createTsConfig(): void {\n const tsConfig = {\n compilerOptions: {\n target: 'ES2022',\n module: 'ES2022',\n moduleResolution: 'Bundler',\n lib: ['ES2022'],\n outDir: './dist',\n rootDir: '.',\n strict: true,\n esModuleInterop: true,\n allowSyntheticDefaultImports: true,\n skipLibCheck: true,\n forceConsistentCasingInFileNames: true,\n moduleDetection: 'force',\n resolveJsonModule: true,\n paths: {\n '@botpress/runtime/_types/*': ['./.adk/*-types'],\n },\n },\n include: ['src/**/*', '.adk/**/*'],\n exclude: ['node_modules', 'dist'],\n }\n\n this.writeJsonFile('tsconfig.json', tsConfig)\n }\n\n private createAgentJson(): void {\n const agentJson = {}\n this.writeJsonFile('agent.json', agentJson)\n }\n\n private createGitIgnore(): void {\n const gitIgnore = `# Dependencies\nnode_modules/\n.pnpm-store/\n\n# Build outputs\ndist/\n.adk/\n\n# Environment files\n.env\n.env.local\n.env.production\n\n# IDE files\n.vscode/\n.idea/\n*.swp\n*.swo\n\n# OS files\n.DS_Store\nThumbs.db\n\n# Logs\n*.log\nlogs/\n\n# Runtime files\n*.pid\n*.seed\n*.pid.lock\n`\n\n this.writeFile('.gitignore', gitIgnore)\n }\n\n private async createReadme(): Promise<void> {\n const installCommand =\n this.packageManager === 'npm'\n ? 'npm install'\n : this.packageManager === 'yarn'\n ? 'yarn install'\n : `${this.packageManager} install`\n\n const readme = `# ${this.projectName}\n\nA Botpress Agent built with the ADK.\n\n## Getting Started\n\n1. Install dependencies:\n \\`\\`\\`bash\n ${installCommand}\n \\`\\`\\`\n\n2. Start development server:\n \\`\\`\\`bash\n adk dev\n \\`\\`\\`\n\n3. Deploy your agent:\n \\`\\`\\`bash\n adk deploy\n \\`\\`\\`\n\n## Project Structure\n\n- \\`src/actions/\\` - Define callable functions\n- \\`src/workflows/\\` - Define long-running processes\n- \\`src/conversations/\\` - Define conversation handlers\n- \\`src/tables/\\` - Define data storage schemas\n- \\`src/triggers/\\` - Define event subscriptions\n- \\`src/knowledge/\\` - Add knowledge base files\n\n## Learn More\n\n- [ADK Documentation](https://botpress.com/docs/adk)\n- [Botpress Platform](https://botpress.com)\n`\n\n await this.writeFormattedFile('README.md', readme)\n }\n\n private async createSourceStructure(): Promise<void> {\n const srcPath = path.join(this.projectPath, 'src')\n fs.mkdirSync(srcPath)\n\n const subdirectories = ['actions', 'conversations', 'knowledge', 'tables', 'triggers', 'workflows']\n\n for (const subdir of subdirectories) {\n const subdirPath = path.join(srcPath, subdir)\n fs.mkdirSync(subdirPath)\n\n // Special handling for conversations directory in hello-world template\n if (subdir === 'conversations' && this.template === 'hello-world') {\n const conversationContent = `import { Conversation } from \"@botpress/runtime\";\n\nexport default new Conversation({\n channel: \"*\",\n handler: async ({ execute }) => {\n await execute({\n instructions: \\`You are a helpful AI assistant built with Botpress ADK. You can assist users with their questions and tasks.\\`,\n });\n },\n});\n`\n await this.writeFormattedFile(path.join('src', subdir, 'index.ts'), conversationContent)\n } else {\n const placeholderContent = `/**\n * TODO: Add your ${subdir} here\n *\n * This is a placeholder file to initialize the ${subdir} directory.\n * You can delete this file once you add your own ${subdir}.\n */\n\nexport default {};\n`\n\n await this.writeFormattedFile(path.join('src', subdir, 'index.ts'), placeholderContent)\n }\n }\n }\n\n private writeFile(relativePath: string, content: string): void {\n const filePath = path.join(this.projectPath, relativePath)\n fs.writeFileSync(filePath, content)\n }\n\n private async writeFormattedFile(relativePath: string, content: string): Promise<void> {\n const formatted = await formatCode(content, relativePath)\n this.writeFile(relativePath, formatted)\n }\n\n private writeJsonFile(relativePath: string, data: any): void {\n this.writeFile(relativePath, JSON.stringify(data, null, 2) + '\\n')\n }\n}\n",
45
+ "import * as fs from 'fs'\nimport * as path from 'path'\nimport { formatCode } from '../generators/utils.js'\nimport { Dependencies } from '../agent-project/types.js'\n\n// This constant is injected at build time by esbuild's define\ndeclare const __RUNTIME_VERSION__: string\n\nexport class AgentProjectGenerator {\n private projectPath: string\n private projectName: string\n private packageManager: string\n private template: string\n\n constructor(projectPath: string, packageManager: string = 'bun', template: string = 'blank') {\n this.projectPath = path.resolve(projectPath)\n this.projectName = path.basename(this.projectPath)\n this.packageManager = packageManager\n this.template = template\n }\n\n async generate(): Promise<void> {\n this.ensureEmptyDirectory()\n this.createPackageJson()\n this.createDependenciesJson()\n await this.createAgentConfig()\n this.createTsConfig()\n this.createAgentJson()\n this.createGitIgnore()\n await this.createReadme()\n await this.createSourceStructure()\n }\n\n private ensureEmptyDirectory(): void {\n // Ensure directory exists\n if (!fs.existsSync(this.projectPath)) {\n fs.mkdirSync(this.projectPath, { recursive: true })\n }\n\n // Check if directory is empty\n const files = fs.readdirSync(this.projectPath)\n if (files.length > 0) {\n throw new Error(`Directory ${this.projectPath} is not empty. Please use an empty directory.`)\n }\n }\n\n private createPackageJson(): void {\n const packageJson = {\n name: this.projectName,\n version: '1.0.0',\n description: `A Botpress Agent built with the ADK`,\n type: 'module',\n packageManager: this.packageManager === 'npm' ? undefined : `${this.packageManager}@latest`,\n scripts: {\n dev: 'adk dev',\n build: 'adk build',\n deploy: 'adk deploy',\n },\n dependencies: {\n '@botpress/runtime': `^${__RUNTIME_VERSION__}`,\n },\n devDependencies: {\n typescript: '^5.9.3',\n },\n }\n\n // Remove packageManager field if undefined (for npm)\n if (packageJson.packageManager === undefined) {\n delete (packageJson as any).packageManager\n }\n\n this.writeJsonFile('package.json', packageJson)\n }\n\n private createDependenciesJson(): void {\n const dependenciesJson: Dependencies = {\n integrations: {},\n }\n\n // Add default integrations for hello-world template\n if (this.template === 'hello-world') {\n dependenciesJson.integrations = {\n chat: {\n version: 'chat@latest',\n enabled: true,\n },\n webchat: {\n version: 'webchat@latest',\n enabled: true,\n },\n }\n }\n\n this.writeJsonFile('dependencies.json', dependenciesJson)\n }\n\n private async createAgentConfig(): Promise<void> {\n const defaultModels =\n this.template === 'hello-world'\n ? `\\n defaultModels: {\n autonomous: \"cerebras:gpt-oss-120b\",\n zai: \"cerebras:gpt-oss-120b\",\n },\\n`\n : ''\n\n const agentConfig = `import { z, defineConfig } from '@botpress/runtime';\n\nexport default defineConfig({\n name: '${this.projectName}',\n description: 'An AI agent built with Botpress ADK',\n${defaultModels}\n bot: {\n state: z.object({}),\n },\n\n user: {\n state: z.object({}),\n },\n});\n`\n\n await this.writeFormattedFile('agent.config.ts', agentConfig)\n }\n\n private createTsConfig(): void {\n const tsConfig = {\n compilerOptions: {\n target: 'ES2022',\n module: 'ES2022',\n moduleResolution: 'Bundler',\n lib: ['ES2022'],\n outDir: './dist',\n rootDir: '.',\n strict: true,\n esModuleInterop: true,\n allowSyntheticDefaultImports: true,\n skipLibCheck: true,\n forceConsistentCasingInFileNames: true,\n moduleDetection: 'force',\n resolveJsonModule: true,\n paths: {\n '@botpress/runtime/_types/*': ['./.adk/*-types'],\n },\n },\n include: ['src/**/*', '.adk/**/*'],\n exclude: ['node_modules', 'dist'],\n }\n\n this.writeJsonFile('tsconfig.json', tsConfig)\n }\n\n private createAgentJson(): void {\n const agentJson = {}\n this.writeJsonFile('agent.json', agentJson)\n }\n\n private createGitIgnore(): void {\n const gitIgnore = `# Dependencies\nnode_modules/\n.pnpm-store/\n\n# Build outputs\ndist/\n.adk/\n\n# Environment files\n.env\n.env.local\n.env.production\n\n# IDE files\n.vscode/\n.idea/\n*.swp\n*.swo\n\n# OS files\n.DS_Store\nThumbs.db\n\n# Logs\n*.log\nlogs/\n\n# Runtime files\n*.pid\n*.seed\n*.pid.lock\n`\n\n this.writeFile('.gitignore', gitIgnore)\n }\n\n private async createReadme(): Promise<void> {\n const installCommand =\n this.packageManager === 'npm'\n ? 'npm install'\n : this.packageManager === 'yarn'\n ? 'yarn install'\n : `${this.packageManager} install`\n\n const readme = `# ${this.projectName}\n\nA Botpress Agent built with the ADK.\n\n## Getting Started\n\n1. Install dependencies:\n \\`\\`\\`bash\n ${installCommand}\n \\`\\`\\`\n\n2. Start development server:\n \\`\\`\\`bash\n adk dev\n \\`\\`\\`\n\n3. Deploy your agent:\n \\`\\`\\`bash\n adk deploy\n \\`\\`\\`\n\n## Project Structure\n\n- \\`src/actions/\\` - Define callable functions\n- \\`src/workflows/\\` - Define long-running processes\n- \\`src/conversations/\\` - Define conversation handlers\n- \\`src/tables/\\` - Define data storage schemas\n- \\`src/triggers/\\` - Define event subscriptions\n- \\`src/knowledge/\\` - Add knowledge base files\n\n## Learn More\n\n- [ADK Documentation](https://botpress.com/docs/adk)\n- [Botpress Platform](https://botpress.com)\n`\n\n await this.writeFormattedFile('README.md', readme)\n }\n\n private async createSourceStructure(): Promise<void> {\n const srcPath = path.join(this.projectPath, 'src')\n fs.mkdirSync(srcPath)\n\n const subdirectories = ['actions', 'conversations', 'knowledge', 'tables', 'triggers', 'workflows']\n\n for (const subdir of subdirectories) {\n const subdirPath = path.join(srcPath, subdir)\n fs.mkdirSync(subdirPath)\n\n // Special handling for conversations directory in hello-world template\n if (subdir === 'conversations' && this.template === 'hello-world') {\n const conversationContent = `import { Conversation } from \"@botpress/runtime\";\n\nexport default new Conversation({\n channel: \"*\",\n handler: async ({ execute }) => {\n await execute({\n instructions: \\`You are a helpful AI assistant built with Botpress ADK. You can assist users with their questions and tasks.\\`,\n });\n },\n});\n`\n await this.writeFormattedFile(path.join('src', subdir, 'index.ts'), conversationContent)\n } else {\n const placeholderContent = `/**\n * TODO: Add your ${subdir} here\n *\n * This is a placeholder file to initialize the ${subdir} directory.\n * You can delete this file once you add your own ${subdir}.\n */\n\nexport default {};\n`\n\n await this.writeFormattedFile(path.join('src', subdir, 'index.ts'), placeholderContent)\n }\n }\n }\n\n private writeFile(relativePath: string, content: string): void {\n const filePath = path.join(this.projectPath, relativePath)\n fs.writeFileSync(filePath, content)\n }\n\n private async writeFormattedFile(relativePath: string, content: string): Promise<void> {\n const formatted = await formatCode(content, relativePath)\n this.writeFile(relativePath, formatted)\n }\n\n private writeJsonFile(relativePath: string, data: any): void {\n this.writeFile(relativePath, JSON.stringify(data, null, 2) + '\\n')\n }\n}\n",
46
46
  "import { createFile } from '../utils/fs.js'\nimport { defaultAdkFolder } from '../const.js'\nimport path from 'path'\nimport { AssetsManager, AssetsCacheManager } from '../assets/index.js'\n\nexport async function generateAssetsTypes(projectPath: string): Promise<void> {\n const assetsManager = new AssetsManager({ projectPath })\n\n // Generate TypeScript types for assets\n const typesCode = await assetsManager.generateTypes()\n\n // Write to the types directory\n const typesPath = path.join(projectPath, defaultAdkFolder, 'assets.d.ts')\n await createFile(typesPath, typesCode)\n}\n\nexport async function generateAssetsRuntime(projectPath: string, botId?: string, workspaceId?: string): Promise<void> {\n const assetsManager = new AssetsManager({ projectPath, botId, workspaceId })\n\n // Get enriched assets with remote metadata when available\n const enrichedAssets = await assetsManager.getEnrichedLocalAssets()\n\n // Generate hardcoded asset metadata\n const assetsMap: Record<string, any> = {}\n const localHashesMap: Record<string, string> = {}\n\n // Read cache to get local hashes\n const cacheManager = new AssetsCacheManager(projectPath)\n const cache = await cacheManager.load()\n\n for (const asset of enrichedAssets) {\n assetsMap[asset.path] = asset\n const cacheEntry = cache.entries[asset.path]\n if (cacheEntry) {\n localHashesMap[asset.path] = cacheEntry.localHash\n }\n }\n\n // Generate minimal runtime code that only exports metadata\n const runtimeCode = `\n// Auto-generated assets metadata\nimport { Asset, initAssets } from '@botpress/runtime/runtime';\n\n// Static asset metadata (populated at build time)\nexport const assetsMetadata: Record<string, Asset> = ${JSON.stringify(assetsMap, null, 2)};\n\n// Local hashes from cache\nexport const localHashes: Record<string, string> = ${JSON.stringify(localHashesMap, null, 2)};\n\n// Initialize the assets runtime with metadata and local hashes\n// The global object should be passed by the agent initialization code\nexport function initializeAssets(globalObj: any = globalThis) {\n initAssets(globalObj, assetsMetadata, localHashes);\n}\n\n// Auto-initialize if running in a supported environment\nif (typeof globalThis !== 'undefined') {\n initializeAssets(globalThis);\n} else if (typeof global !== 'undefined') {\n initializeAssets(global);\n}\n`\n\n const runtimePath = path.join(projectPath, defaultAdkFolder, 'assets-runtime.ts')\n await createFile(runtimePath, runtimeCode)\n}\n\nexport async function initAssets(projectPath: string, botId?: string, workspaceId?: string): Promise<void> {\n const assetsManager = new AssetsManager({ projectPath, botId, workspaceId })\n\n if (await assetsManager.hasAssetsDirectory()) {\n await generateAssetsTypes(projectPath)\n await generateAssetsRuntime(projectPath, botId, workspaceId)\n } else {\n // Generate empty types if no assets directory exists\n const emptyTypesCode = `// No assets directory found\nimport { Asset } from '@botpress/runtime';\n\nexport type AssetPaths = never;\n\nexport interface AssetPathMap {}\n\n// Runtime asset access\ndeclare global {\n const assets: {\n get<T extends AssetPaths>(path: T): Asset;\n list(): Asset[];\n getSyncStatus(): { \n synced: boolean; \n neverSynced: string[]; \n stale: string[];\n upToDate: string[];\n };\n };\n}\n`\n\n const typesPath = path.join(projectPath, defaultAdkFolder, 'assets.d.ts')\n await createFile(typesPath, emptyTypesCode)\n\n // Generate empty runtime\n const emptyRuntimeCode = `\n// No assets available\nimport { Asset, initAssets } from '@botpress/runtime';\n\n// Empty asset metadata\nexport const assetsMetadata: Record<string, Asset> = {};\n\n// Initialize with empty metadata\nexport function initializeAssets(globalObj: any = globalThis) {\n initAssets(globalObj, assetsMetadata);\n}\n\n// Auto-initialize if running in a supported environment\nif (typeof globalThis !== 'undefined') {\n initializeAssets(globalThis);\n} else if (typeof global !== 'undefined') {\n initializeAssets(global);\n}\n`\n\n const runtimePath = path.join(projectPath, defaultAdkFolder, 'assets-runtime.ts')\n await createFile(runtimePath, emptyRuntimeCode)\n }\n}\n",
47
47
  "import { transforms } from '@botpress/sdk'\nimport crypto from 'crypto'\nimport path from 'path'\n\nimport { ParsedIntegration } from '../integrations/types.js'\nimport { pascalCase, snakeCase } from '../utils/strings.js'\nimport { ADK_VERSION, relative, toMultilineComment, formatCode } from './utils.js'\nimport { getIntegrationAlias } from '../utils/ids.js'\n\nconst getIntegrationHash = (integration: ParsedIntegration): string => {\n return crypto\n .createHash('sha256')\n .update(\n `${integration.alias}|${integration.definition?.id}|${integration.definition?.version}|${integration.definition?.updatedAt}`\n )\n .digest('hex')\n}\n\nconst getPascalAlias = (integration: ParsedIntegration) => pascalCase(getIntegrationAlias(integration.alias))\n\nconst getIntegrationNames = (integration: ParsedIntegration) => ({\n typings: {\n index: `Integration_All_${getPascalAlias(integration)}`,\n actions: `Integration_Actions_${getPascalAlias(integration)}`,\n channels: `Integration_Channels_${getPascalAlias(integration)}`,\n events: `Integration_Events_${getPascalAlias(integration)}`,\n users: `Integration_Users_${getPascalAlias(integration)}`,\n },\n paths: {\n index: path.join(snakeCase(getPascalAlias(integration)), `index.ts`),\n actions: path.join(snakeCase(getPascalAlias(integration)), `actions.ts`),\n channels: path.join(snakeCase(getPascalAlias(integration)), `channels.ts`),\n events: path.join(snakeCase(getPascalAlias(integration)), `events.ts`),\n users: path.join(snakeCase(getPascalAlias(integration)), `users.ts`),\n },\n})\n\nexport async function generateIntegrationTypes(integration: ParsedIntegration): Promise<{\n names: ReturnType<typeof getIntegrationNames>\n files: Record<string, string>\n}> {\n const names = getIntegrationNames(integration)\n const hash = getIntegrationHash(integration)\n\n const rel = (to: string): string => {\n const from = names.paths.index\n return relative(from, to).replace(/\\.ts$/i, '')\n }\n\n let tIndex = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // ADK Version: ${ADK_VERSION}\n // Integration: ${integration.definition?.name}\n // Version: ${integration.definition?.version}\n // File: ${names.paths.index}\n // Hash: ${hash}\n // Updated at: ${integration.definition?.updatedAt}\n ////////////////////////////////////////////////////////\n\n import { Integration_Actions_${getPascalAlias(integration)} } from \"${rel(names.paths.actions)}\";\n import { Integration_Channels_${getPascalAlias(integration)} } from \"${rel(names.paths.channels)}\";\n import { Integration_Events_${getPascalAlias(integration)} } from \"${rel(names.paths.events)}\";\n import { Integration_Users_${getPascalAlias(integration)} } from \"${rel(names.paths.users)}\";\n\n export * from \"${rel(names.paths.actions)}\";\n export * from \"${rel(names.paths.channels)}\";\n export * from \"${rel(names.paths.events)}\";\n export * from \"${rel(names.paths.users)}\";\n\n export type Integration_All_${getPascalAlias(integration)} = {\n actions: Integration_Actions_${getPascalAlias(integration)};\n channels: Integration_Channels_${getPascalAlias(integration)};\n events: Integration_Events_${getPascalAlias(integration)};\n users: Integration_Users_${getPascalAlias(integration)};\n };\n `\n\n let tActions = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // ADK Version: ${ADK_VERSION}\n // Integration: ${integration.definition?.name}\n // Version: ${integration.definition?.version}\n // File: ${names.paths.actions}\n // Hash: ${hash}\n // Updated at: ${integration.definition?.updatedAt}\n ////////////////////////////////////////////////////////\n\n export type Integration_Actions_${getPascalAlias(integration)} = {`\n\n for (const [name, action] of Object.entries(integration.definition!.actions)) {\n const input = transforms.fromJSONSchema(action.input.schema).toTypescriptType()\n\n const output = transforms.fromJSONSchema(action.output.schema).toTypescriptType()\n\n tActions += `\n ${toMultilineComment(`Title: ${action.title || name}\\nDescription: ${action.description || 'No description'}`)}\n \"${name}\": {\n input: ${input};\n output: ${output};\n },\\n`\n }\n\n tActions += `};`\n\n let tChannels = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // ADK Version: ${ADK_VERSION}\n // Integration: ${integration.definition?.name}\n // Version: ${integration.definition?.version}\n // File: ${names.paths.channels}\n // Hash: ${hash}\n // Updated at: ${integration.definition?.updatedAt}\n ////////////////////////////////////////////////////////\n\n export type Integration_Channels_${getPascalAlias(integration)} = {`\n\n for (const [channelName, channelDef] of Object.entries(integration.definition?.channels || {})) {\n const convoTagsRecord =\n '{' +\n Object.keys(channelDef.conversation?.tags || {}).reduce((acc, t) => {\n const tag = channelDef.conversation.tags[t]!\n const comment = toMultilineComment(`Title: ${tag?.title}\\nDescription: ${tag.description}`)\n // Use ref.fullName to preserve workspace prefix (e.g., \"sly/intercom\")\n acc += `${comment}\\n[\"${integration.ref.fullName}:${t}\"]?: string,\\n`\n return acc\n }, '') +\n '}'\n\n const msgTagsUnion =\n '{' +\n Object.keys(channelDef.message?.tags || {}).reduce((acc, t) => {\n const tag = channelDef.message.tags[t]!\n const comment = toMultilineComment(`Title: ${tag?.title}\\nDescription: ${tag.description}`)\n // Use ref.fullName to preserve workspace prefix (e.g., \"sly/intercom\")\n acc += `${comment}\\n[\"${integration.ref.fullName}:${t}\"]?: string,\\n`\n return acc\n }, '') +\n '}'\n\n let messagesBlock = ''\n for (const [messageName, messageDef] of Object.entries(channelDef.messages || {})) {\n const messageType = transforms.fromJSONSchema(messageDef.schema).toTypescriptType()\n\n messagesBlock += `\\n\"${messageName}\": ${messageType};\\n`\n }\n\n tChannels += `\n ${toMultilineComment(\n `Title: ${channelDef.title || channelName}\\nDescription: ${channelDef.description || 'No description'}`\n )}\n \"${channelName}\": {\n conversation: {\n tags: ${convoTagsRecord};\n };\n message: {\n tags: ${msgTagsUnion};\n };\n messages: {${messagesBlock}\n };\n },`\n }\n\n tChannels += `\n };\n `\n\n let tEvents = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // ADK Version: ${ADK_VERSION}\n // Integration: ${integration.definition!.name}\n // Version: ${integration.definition!.version}\n // File: ${names.paths.events}\n // Hash: ${hash}\n // Updated at: ${integration.definition!.updatedAt}\n ////////////////////////////////////////////////////////\n\n export type Integration_Events_${getPascalAlias(integration)} = {`\n\n for (const [eventName, event] of Object.entries(integration.definition!.events || {})) {\n const payloadType = transforms.fromJSONSchema(event.schema).toTypescriptType()\n\n const attributesComment = Object.keys(event.attributes || {}).length\n ? `\\nAttributes:\\n${Object.entries(event.attributes!)\n .map(([k, v]) => ` - ${k}: ${v}`)\n .join('\\n')}`.trim()\n : ''\n\n tEvents += `\n ${toMultilineComment(\n `Title: ${event.title || eventName}\\nDescription: ${event.description || 'No description'}${attributesComment}`\n )}\n \"${eventName}\": ${payloadType};\n `\n }\n\n tEvents += `\n };\n `\n\n let tUsers = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // ADK Version: ${ADK_VERSION}\n // Integration: ${integration.definition?.name}\n // Version: ${integration.definition?.version}\n // File: ${names.paths.users}\n // Hash: ${hash}\n // Updated at: ${integration.definition?.updatedAt}\n ////////////////////////////////////////////////////////\n\n export type Integration_Users_${getPascalAlias(integration)} = {`\n\n const userTagKeys = Object.keys(integration.definition?.user?.tags || {})\n const userTagsUnion = userTagKeys.length\n ? userTagKeys\n .map((t) => {\n const tag = (integration.definition?.user!.tags ?? ({} as any))[t]!\n const comment = toMultilineComment(`Title: ${tag?.title}\\nDescription: ${tag?.description}`)\n // Use ref.fullName to preserve workspace prefix (e.g., \"sly/intercom\")\n return `${comment}\\n\"${integration.ref.fullName}:${t}\"\\n`\n })\n .join(' | ')\n : 'never'\n\n tUsers += `\n tags: ${userTagsUnion};\n };\n `\n\n return {\n names,\n files: {\n [names.paths.index]: await formatCode(tIndex),\n [names.paths.actions]: await formatCode(tActions),\n [names.paths.channels]: await formatCode(tChannels),\n [names.paths.events]: await formatCode(tEvents),\n [names.paths.users]: await formatCode(tUsers),\n },\n }\n}\n",
48
48
  "export function pascalCase(str: string): string {\n return str\n .split(/[-_\\s]+/)\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join('')\n}\n\nexport function camelCase(str: string): string {\n const pascal = pascalCase(str)\n return pascal.charAt(0).toLowerCase() + pascal.slice(1)\n}\n\nexport function kebabCase(str: string): string {\n return str\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/[\\s_]+/g, '-')\n .toLowerCase()\n}\n\nexport function snakeCase(str: string): string {\n return str\n .replace(/([a-z])([A-Z])/g, '$1_$2')\n .replace(/[\\s-]+/g, '_')\n .toLowerCase()\n}\n",
49
49
  "export function getIntegrationAlias(integrationName: string) {\n return integrationName.replace(/\\//g, '__').replace(/-/g, '_').toLowerCase()\n}\n",
50
- "import dedent from 'dedent'\nimport { existsSync } from 'fs'\nimport fs from 'fs/promises'\nimport path from 'path'\nimport { AgentProject } from '../agent-project/index.js'\nimport { generateIntegrationTypes } from '../generators/integration-types.js'\nimport { generateInterfaceTypes } from '../generators/interface-types.js'\nimport { generateTableTypes } from '../generators/table-types.js'\nimport { generateTriggerTypes } from '../generators/trigger-types.js'\nimport { generateStateTypes } from '../generators/state-types.js'\nimport { generateWorkflowTypes } from '../generators/workflow-types.js'\nimport { generateConversationTypes } from '../generators/conversation-types.js'\nimport { generateEventTypes } from '../generators/event-types.js'\nimport { IntegrationManager } from '../integrations/manager.js'\nimport { InterfaceManager } from '../interfaces/manager.js'\nimport { createFile } from '../utils/fs.js'\nimport { pascalCase } from '../utils/strings.js'\nimport { DevIdManager } from './dev-id-manager.js'\nimport { IntegrationSync } from './integration-sync.js'\nimport { InterfaceSync } from './interface-sync.js'\nimport { formatCode, ADK_VERSION } from '../generators/utils.js'\nimport { transforms, z } from '@botpress/sdk'\nimport { getIntegrationAlias } from '../utils/ids.js'\nimport { BUILTIN_INTERFACES } from '../constants.js'\nimport { BuiltInWorkflows, Primitives, Workflow } from '@botpress/runtime/internal'\n\nexport interface BotGeneratorOptions {\n projectPath: string\n outputPath?: string\n adkCommand?: 'adk-dev' | 'adk-build' | 'adk-deploy'\n}\n\nfunction isBuiltinWorkflow(name: string): boolean {\n return !!Object.values(BuiltInWorkflows).find((x) => x.name === name)\n}\n\n/**\n * Generate a normalized import path for use in import statements\n * Converts Windows backslashes to forward slashes and removes .ts extension\n */\nfunction getImportPath(from: string, to: string): string {\n return path.relative(path.dirname(from), to).replace(/\\.ts$/, '').replace(/\\\\/g, '/')\n}\n\nexport class BotGenerator {\n private projectPath: string\n private outputPath: string\n\n constructor(options: BotGeneratorOptions) {\n this.projectPath = path.resolve(options.projectPath)\n this.outputPath = path.resolve(options.outputPath || path.join(this.projectPath, '.adk'))\n }\n\n private async listFilesRecursive(rootDir: string): Promise<string[]> {\n try {\n if (!existsSync(rootDir)) return []\n const result: string[] = []\n const walk = async (dir: string, relativeBase: string) => {\n const entries = await fs.readdir(dir, { withFileTypes: true })\n for (const entry of entries) {\n const abs = path.join(dir, entry.name)\n const rel = path.join(relativeBase, entry.name)\n if (entry.isDirectory()) {\n await walk(abs, rel)\n } else {\n result.push(rel)\n }\n }\n }\n await walk(rootDir, '')\n return result.sort()\n } catch {\n return []\n }\n }\n\n private async removeEmptyDirectories(rootDir: string): Promise<void> {\n if (!existsSync(rootDir)) return\n const removeIfEmpty = async (dir: string) => {\n const entries = await fs.readdir(dir, { withFileTypes: true })\n for (const entry of entries) {\n if (entry.isDirectory()) {\n const subdir = path.join(dir, entry.name)\n await removeIfEmpty(subdir)\n }\n }\n\n // Re-read after potential removals\n const after = await fs.readdir(dir)\n if (after.length === 0 && dir !== rootDir) {\n try {\n await fs.rmdir(dir, { recursive: false })\n } catch {}\n }\n }\n await removeIfEmpty(rootDir)\n }\n\n async generate(): Promise<void> {\n // Load the agent project\n const project = await AgentProject.load(this.projectPath)\n\n // Create output directory\n await fs.mkdir(this.outputPath, { recursive: true })\n\n // Generate bot files\n await this.generateBotDefinition()\n await this.generateIntegrationsDefinition()\n await this.generateInterfacesDefinition()\n await this.generateIntegrationsTypes()\n await this.generateInterfacesTypes()\n await this.generateTableTypes()\n await this.generateTriggerTypes()\n await this.generateStateTypes()\n await this.generateWorkflowTypes()\n await this.generateConversationTypes()\n await this.generateActionTypes()\n await this.generateEventTypes()\n await this.generateIntegrationActionTypes()\n await this.generateRuntimeTypes()\n await this.generateBotIndex()\n await this.generatePackageJson(project)\n await this.generateTsConfig()\n await this.generateGlobalTypes()\n await this.copyAssets()\n }\n\n private async generateIntegrationsTypes(): Promise<void> {\n // Load the project to get interfaces\n const project = await AgentProject.load(this.projectPath)\n const manager = new IntegrationManager({\n workspaceId: project.agentInfo?.workspaceId,\n })\n const integrations = await manager.loadIntegrations(project.dependencies || {})\n\n // List existing files before generation (.adk/integrations)\n const integrationsDir = path.join(this.projectPath, '.adk', 'integrations')\n const existingIntegrationFiles = await this.listFilesRecursive(integrationsDir)\n\n let aliases = new Set<string>()\n let files = new Set<string>() // tracks all files created in this run (relative to .adk/integrations)\n\n // Generate imports for each integration\n for (const integration of integrations.integrations) {\n if (integration.enabled && integration.definition) {\n const types = await generateIntegrationTypes(integration)\n\n // Use dynamic import for type\n const importPath = `./${path.join('integrations', types.names.paths.index).replace(/\\\\/g, '/')}`\n aliases.add(`\"${integration.alias}\": import(\"${importPath}\").${types.names.typings.index}`)\n\n for (const [filePath, content] of Object.entries(types.files)) {\n const fullPath = path.join(this.projectPath, '.adk', 'integrations', filePath)\n\n const dir = path.dirname(fullPath)\n await fs.mkdir(dir, { recursive: true })\n await createFile(fullPath, content)\n files.add(filePath)\n }\n }\n }\n\n const types = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: integrations.ts\n ////////////////////////////////////////////////////////\n\n declare module \"@botpress/runtime/_types/integrations\" {\n export type Integrations = {\n ${Array.from(aliases).join(`, `)}\n };\n }\n `\n\n await createFile(path.join(this.projectPath, '.adk', 'integrations.d.ts'), await formatCode(types))\n\n // Cleanup stale integration files\n const staleIntegrationFiles = existingIntegrationFiles.filter((f) => !files.has(f))\n if (staleIntegrationFiles.length > 0) {\n for (const rel of staleIntegrationFiles) {\n const abs = path.join(integrationsDir, rel)\n try {\n await fs.rm(abs, { force: true })\n } catch {}\n }\n }\n // remove empty folders after deletion\n await this.removeEmptyDirectories(integrationsDir)\n }\n\n private async generateTableTypes(): Promise<void> {\n const project = await AgentProject.load(this.projectPath)\n await generateTableTypes(project)\n }\n\n private async generateTriggerTypes(): Promise<void> {\n const project = await AgentProject.load(this.projectPath)\n await generateTriggerTypes(project)\n }\n\n private async generateStateTypes(): Promise<void> {\n const project = await AgentProject.load(this.projectPath)\n await generateStateTypes(project)\n }\n\n private async generateEventTypes(): Promise<void> {\n const project = await AgentProject.load(this.projectPath)\n await generateEventTypes(project)\n }\n\n private async generateWorkflowTypes(): Promise<void> {\n const project = await AgentProject.load(this.projectPath)\n await generateWorkflowTypes(project)\n }\n\n private async generateConversationTypes(): Promise<void> {\n const project = await AgentProject.load(this.projectPath)\n await generateConversationTypes(project)\n }\n\n private async generateActionTypes(): Promise<void> {\n const project = await AgentProject.load(this.projectPath)\n const { generateActionTypes } = await import('../generators/action-types.js')\n await generateActionTypes(project)\n }\n\n private async generateIntegrationActionTypes(): Promise<void> {\n const project = await AgentProject.load(this.projectPath)\n const { generateIntegrationActionTypes } = await import('../generators/integration-action-types.js')\n await generateIntegrationActionTypes(project)\n }\n\n private async generateRuntimeTypes(): Promise<void> {\n // Load the project for conditional imports\n const project = await AgentProject.load(this.projectPath)\n\n // Load integrations to generate channel types\n const manager = new IntegrationManager({\n workspaceId: project.agentInfo?.workspaceId,\n })\n const integrations = await manager.loadIntegrations(project.dependencies || {})\n\n // Collect all channel names from integrations\n const channels: string[] = []\n for (const integration of integrations.integrations) {\n if (integration.enabled && integration.definition) {\n const alias = integration.alias\n for (const channelName of Object.keys(integration.definition.channels || {})) {\n channels.push(`\"${alias}.${channelName}\"`)\n }\n }\n }\n\n // Generate channel union type\n const channelsType = channels.length > 0 ? channels.join(' | ') : 'never'\n\n // Get state types from agent config\n let botStateType = '{}'\n let userStateType = '{}'\n\n try {\n const configPath = path.join(project.path, 'agent.config.ts')\n // Bust module cache to ensure fresh config on regeneration\n const configModule = await import(`${configPath}?t=${Date.now()}`)\n const config = configModule.default\n\n if (config?.bot?.state) {\n const botSchema = config.bot.state as z.ZodTypeAny\n if (botSchema.toTypescriptType) {\n botStateType = botSchema.toTypescriptType()\n }\n }\n\n if (config?.user?.state) {\n const userSchema = config.user.state as z.ZodTypeAny\n if (userSchema.toTypescriptType) {\n userStateType = userSchema.toTypescriptType()\n }\n }\n } catch (error) {\n console.warn('Failed to load agent config for state types:', error)\n }\n\n const types = `\n////////////////////////////////////////////////////////\n// DO NOT EDIT THIS FILE DIRECTLY\n// This file is auto-generated from the Botpress ADK\n// ADK Version: ${ADK_VERSION}\n// Generated at: ${new Date().toISOString()}\n////////////////////////////////////////////////////////\n\ndeclare module \"@botpress/runtime/_types/channels\" {\n export type Channels = ${channelsType};\n export type ChannelSpec = Channels | readonly Channels[] | '*';\n}\n\ndeclare module \"@botpress/runtime/_types/state\" {\n export type BotState = ${botStateType};\n export type UserState = ${userStateType};\n}\n`\n\n await createFile(path.join(this.projectPath, '.adk', 'runtime.d.ts'), await formatCode(types))\n }\n\n private async generateInterfacesTypes(): Promise<void> {\n // Load the project to get interfaces\n const project = await AgentProject.load(this.projectPath)\n const integrationManager = new IntegrationManager({\n workspaceId: project.agentInfo?.workspaceId,\n })\n const manager = new InterfaceManager()\n\n // List existing files before generation (.adk/interfaces)\n const interfacesDir = path.join(this.projectPath, '.adk', 'interfaces')\n const existingInterfaceFiles = await this.listFilesRecursive(interfacesDir)\n\n const interfaces = await manager\n .loadInterfaces(project.dependencies || {})\n .then((result) => result.interfaces.filter((int) => int.definition).map((x) => x.definition!))\n\n const integrations = await integrationManager\n .loadIntegrations(project.dependencies || {})\n .then((result) => result.integrations.filter((int) => int.enabled && int.definition).map((x) => x.definition!))\n\n let imports = new Set<string>()\n let aliases = new Set<string>()\n let files = new Set<string>() // tracks all files created in this run (relative to .adk/interfaces)\n\n // Generate imports for each integration\n for (const int of interfaces) {\n const types = await generateInterfaceTypes(int, integrations)\n\n imports.add(\n `import { ${types.names.typings.index} } from \"./${path.join('interfaces', types.names.paths.index).replace(/\\\\/g, '/')}\";`\n )\n\n aliases.add(`\"${types.names.name}\": ${types.names.typings.index}`)\n\n for (const [filePath, content] of Object.entries(types.files)) {\n const fullPath = path.join(this.projectPath, '.adk', 'interfaces', filePath)\n\n const dir = path.dirname(fullPath)\n await fs.mkdir(dir, { recursive: true })\n await createFile(fullPath, content)\n files.add(filePath)\n }\n }\n\n const types = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: interfaces.d.ts\n ////////////////////////////////////////////////////////\n\n ${Array.from(imports).join('\\n')}\n\n declare global {\n export type Interfaces = {\n ${Array.from(aliases).join(`, `)}\n };\n }\n `\n\n const consts = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: interfaces.ts\n ////////////////////////////////////////////////////////\n\n ${Array.from(imports)\n .map((x) => x.replace('.ts\"', '\"'))\n .join('\\n')}\n\n export const Interfaces = {\n ${Array.from(aliases).join(',\\n')}\n };\n `\n\n await createFile(path.join(this.projectPath, '.adk', 'interfaces.d.ts'), await formatCode(types))\n\n await createFile(path.join(this.projectPath, '.adk', 'interfaces.ts'), await formatCode(consts))\n\n // Cleanup stale interface files\n const staleInterfaceFiles = existingInterfaceFiles.filter((f) => !files.has(f))\n if (staleInterfaceFiles.length > 0) {\n for (const rel of staleInterfaceFiles) {\n const abs = path.join(interfacesDir, rel)\n try {\n await fs.rm(abs, { force: true })\n } catch {}\n }\n }\n // remove empty folders after deletion\n await this.removeEmptyDirectories(interfacesDir)\n }\n\n private async generateIntegrationsDefinition(): Promise<void> {\n // Load the project to get integrations\n const project = await AgentProject.load(this.projectPath)\n const integrations = project.dependencies?.integrations || {}\n\n // Generate imports for each integration\n const imports: string[] = []\n const integrationDefs: string[] = []\n\n for (const alias of Object.keys(integrations).map(getIntegrationAlias)) {\n imports.push(`import integration_${alias} from \"../bp_modules/integration_${alias}\";`)\n integrationDefs.push(`${alias}: integration_${alias}`)\n }\n\n const content = dedent`\n import { IntegrationPackage } from \"@botpress/sdk\";\n\n ${imports.length > 0 ? '\\n' + imports.join('\\n') : ''}\n\n export const IntegrationDefinitions = {\n ${integrationDefs.length > 0 ? integrationDefs.join(',\\n') : ''}\n } as Record<string, IntegrationPackage>;\n `\n\n await createFile(path.join(this.outputPath, 'src', 'integrations.ts'), content)\n }\n\n private async generateInterfacesDefinition(): Promise<void> {\n // Use hard-coded built-in interfaces\n const interfaces = BUILTIN_INTERFACES\n\n // Generate imports for each interface\n const imports: string[] = []\n const interfaceDefs: string[] = []\n\n for (const alias of Object.keys(interfaces)) {\n const pascalAlias = pascalCase(alias)\n imports.push(`import interface_${pascalAlias} from \"../bp_modules/interface_${pascalAlias}\";`)\n interfaceDefs.push(`${pascalAlias}: interface_${pascalAlias}`)\n }\n\n const content = dedent`\n import { InterfacePackage } from \"@botpress/sdk\";\n\n ${imports.length > 0 ? '\\n' + imports.join('\\n') : ''}\n\n export const InterfaceDefinitions = {\n ${interfaceDefs.length > 0 ? interfaceDefs.join(',\\n') : ''}\n } as Record<string, InterfacePackage>;\n `\n\n await createFile(path.join(this.outputPath, 'src', 'interfaces.ts'), await formatCode(content))\n }\n\n private async generateBotDefinition(): Promise<void> {\n // Load the project to get integrations, interfaces, and triggers\n const project = await AgentProject.load(this.projectPath)\n const integrations = project.integrations\n\n // Generate imports for each integration and interface\n const imports: string[] = []\n const addIntegrations: string[] = []\n\n for (const { alias } of integrations.filter((i) => i.enabled)) {\n const importName = `integration_${getIntegrationAlias(alias)}`\n imports.push(`import ${importName} from \"./bp_modules/${importName}\";`)\n addIntegrations.push(`bot.addIntegration(${importName}, { alias: \"${alias}\" });`)\n }\n\n // Generate trigger tags for conversations\n const conversationTags: Record<string, any> = {}\n const workflowTags: Record<string, any> = {}\n\n // Helper to hash strings - creates short uppercase hashes\n const crypto = require('crypto')\n const hashString = (str: string) => {\n return crypto.createHash('md5').update(str).digest('hex').substring(0, 5).toUpperCase()\n }\n\n // For each trigger, we need to add possible tags\n for (const trigger of project.triggers) {\n const triggerName = trigger.definition.name\n\n // Add tag for this trigger - the tag name is based on trigger name\n // The value can be \"*\" for wildcard or a specific match result\n const tagName = `trigger${hashString(triggerName)}`\n conversationTags[tagName] = {\n title: `Trigger: ${triggerName}`,\n description: `Subscribe to events from trigger \"${triggerName}\" (use \"*\" for all events or specific values)`,\n }\n\n // TODO: Only add workflow tags when workflows exist\n // Currently we don't support workflow definitions yet\n // When implemented, check if project.workflows.length > 0\n // workflowTags[tagName] = {\n // title: `Trigger: ${triggerName}`,\n // description: `Subscribe to events from trigger \"${triggerName}\" (use \"*\" for all events or specific values)`\n // };\n }\n\n // Load workflow definitions at build time and generate their schemas\n const workflowDefs: string[] = []\n const recurringWorkflows: Array<{ name: string; schedule: string }> = []\n\n const workflowInstances: Workflow<any>[] = []\n\n for (const workflow of project.workflows) {\n try {\n if (isBuiltinWorkflow(workflow.definition.name)) {\n // Built-in workflow - already handled in runtime\n continue\n }\n\n // User-defined workflow - import from project\n const workflowPath = path.join(project.path, workflow.path)\n // Bust module cache to ensure fresh workflow on regeneration\n const workflowModule = await import(`${workflowPath}?t=${Date.now()}`)\n const workflowInstance = (workflowModule.default || workflowModule[workflow.export]) as Workflow | undefined\n\n if (workflowInstance) {\n workflowInstances.push(workflowInstance)\n }\n } catch (error) {\n console.error(`Failed to load workflow ${workflow.definition.name}:`, error)\n }\n }\n\n for (const workflow of Object.values(BuiltInWorkflows)) {\n workflowInstances.push(workflow)\n }\n\n for (const workflow of workflowInstances) {\n const definition = Primitives.Definitions.getDefinition(workflow)\n if (!Primitives.Definitions.isWorkflowDefinition(definition)) {\n continue\n }\n\n // Check if workflow has a schedule property for recurring execution\n if (definition.schedule) {\n recurringWorkflows.push({\n name: definition.name,\n schedule: definition.schedule,\n })\n }\n\n // Generate the workflow definition as inline code\n const inputSchema = definition.input\n ? transforms.fromJSONSchema(definition.input).naked().toTypescriptSchema()\n : 'z.object({})'\n\n const outputSchema = definition.output\n ? transforms.fromJSONSchema(definition.output).naked().toTypescriptSchema()\n : 'z.object({})'\n\n const parts = []\n if (definition.description) {\n parts.push(`title: ${JSON.stringify(definition.name)}`)\n parts.push(`description: ${JSON.stringify(definition.description)}`)\n }\n parts.push(`input: { schema: ${inputSchema} }`)\n parts.push(`output: { schema: ${outputSchema} }`)\n\n // Add the key tag for workflow discrimination\n parts.push(`tags: {\n key: {\n title: \"Workflow Key\",\n description: \"Unique key for workflow deduplication\"\n }\n }`)\n\n workflowDefs.push(`\"${definition.name}\": {\\n ${parts.join(',\\n ')}\\n }`)\n }\n\n const actionDefs: Record<string, any> = {}\n for (const action of project.actions) {\n const def = action.definition\n // Include ALL actions in bot.definition.ts (even hidden ones)\n actionDefs[def.name] = {\n title: def.title,\n description: def.description,\n attributes: def.attributes,\n input: def.input,\n output: def.output,\n cached: def.cached,\n }\n }\n\n const toEventName = (ename: string) => ename.replaceAll(/[^a-zA-Z0-9]/g, '').toLowerCase()\n\n const content = dedent`\n import { BotDefinition, z } from \"@botpress/sdk\";\n import {\n BUILT_IN_STATES,\n TranscriptSchema,\n TrackedStateSchema,\n WorkflowCallbackEvent,\n WorkflowScheduleEvent,\n WorkflowContinueEvent,\n SubworkflowFinished,\n WorkflowDataRequestEvent,\n } from \"@botpress/runtime/definition\";\n ${imports.length > 0 ? '\\n' + imports.join('\\n') : ''}\n\n const bot = new BotDefinition({\n conversation: {\n tags: {\n ${Object.entries(conversationTags)\n .map(\n ([tag, meta]) =>\n `// ${meta.title}\\n // ${meta.description}\\n \"${tag}\": ${JSON.stringify(meta)}`\n )\n .join(',\\n ')}\n },\n },\n ${\n Object.keys(workflowTags).length > 0\n ? `workflow: {\n tags: {\n ${Object.entries(workflowTags)\n .map(\n ([tag, meta]) =>\n `// ${meta.title}\\n // ${meta.description}\\n \"${tag}\": ${JSON.stringify(meta)}`\n )\n .join(',\\n ')}\n },\n },`\n : ''\n }\n ${\n workflowDefs.length > 0\n ? `workflows: {\n ${workflowDefs.join(',\\n ')}\n },`\n : ''\n }\n ${\n Object.keys(actionDefs).length > 0\n ? `actions: {\n ${Object.entries(actionDefs)\n .map(([name, def]) => {\n const parts = []\n if (def.title) parts.push(`title: ${JSON.stringify(def.title)}`)\n if (def.description) parts.push(`description: ${JSON.stringify(def.description)}`)\n if (def.attributes) parts.push(`attributes: ${JSON.stringify(def.attributes)}`)\n parts.push(`input: { schema: ${transforms.fromJSONSchema(def.input).toTypescriptSchema()} }`)\n parts.push(`output: { schema: ${transforms.fromJSONSchema(def.output).toTypescriptSchema()} }`)\n return `\"${name}\": {\\n ${parts.join(',\\n ')}\\n }`\n })\n .join(',\\n ')}\n },`\n : ''\n }\n ${\n recurringWorkflows.length > 0\n ? `recurringEvents: {\n ${recurringWorkflows\n .map(\n (wf) => `\"${toEventName(wf.name + 'Schedule')}\": {\n type: WorkflowScheduleEvent.name,\n schedule: { cron: \"${wf.schedule}\" },\n payload: { workflow: \"${wf.name}\" },\n }`\n )\n .join(',\\n ')}\n },`\n : ''\n }\n\n events: {\n [WorkflowScheduleEvent.name]: {\n schema: WorkflowScheduleEvent.schema,\n },\n [WorkflowCallbackEvent.name]: {\n schema: WorkflowCallbackEvent.schema,\n },\n [WorkflowContinueEvent.name]: {\n schema: WorkflowContinueEvent.schema,\n },\n [SubworkflowFinished.name]: {\n schema: SubworkflowFinished.schema,\n },\n [WorkflowDataRequestEvent.name]: {\n schema: WorkflowDataRequestEvent.schema,\n },\n },\n\n states: {\n /**\n * This is the ADK-native conversation state that contains the\n * necessary data to run the conversation and its handlers.\n */\n conversation: {\n type: \"conversation\",\n schema: z.object({ transcript: TranscriptSchema }),\n },\n\n /**\n * This is a generic state to store the conversation-specific state.\n * This is defined by the users at build-time when they define conversations.\n * Because each conversation can have its own state schema, we use \\`z.any()\\`\n */\n [BUILT_IN_STATES.conversation]: {\n type: \"conversation\",\n schema: TrackedStateSchema,\n },\n\n /**\n * Bot-wide global state that persists across all conversations\n */\n [BUILT_IN_STATES.bot]: {\n type: \"bot\",\n schema: TrackedStateSchema,\n },\n\n /**\n * User-specific state that persists across conversations for each user\n */\n [BUILT_IN_STATES.user]: {\n type: \"user\",\n schema: TrackedStateSchema,\n },\n\n /**\n * Workflow-specific state that persists across workflow executions\n */\n [BUILT_IN_STATES.workflowState]: {\n type: \"workflow\",\n schema: TrackedStateSchema,\n },\n\n /**\n * Workflow cached steps executions\n */\n [BUILT_IN_STATES.workflowSteps]: {\n type: \"workflow\",\n schema: TrackedStateSchema,\n },\n },\n });\n\n ${addIntegrations.length > 0 ? '\\n' + addIntegrations.join('\\n') : ''}\n\n\n export default bot;\n `\n\n await createFile(path.join(this.outputPath, 'bot.definition.ts'), await formatCode(content))\n }\n\n private async generateBotIndex(): Promise<void> {\n const project = await AgentProject.load(this.projectPath)\n\n // Generate action handlers\n const actionHandlers: string[] = []\n for (const action of project.actions) {\n const def = action.definition\n actionHandlers.push(`\"${def.name}\": Actions[\"${def.name}\"].execute.bind(Actions[\"${def.name}\"])`)\n }\n\n const content = dedent`\n import * as bp from '.botpress'\n import { setupAdkRuntime } from './adk-runtime'\n import { Actions } from './actions'\n import {isMainThread, isWorkerMode, initializeParentWorker, runWorker} from '@botpress/runtime/internal'\n\n const bot = new bp.Bot({\n actions: {\n ${actionHandlers.join(',\\n ')}\n },\n })\n\n // ============================================================================\n // WORKER INITIALIZATION\n // ============================================================================\n\n if (isWorkerMode() && isMainThread) {\n // Branch 1: Main thread in worker mode - initialize parent with pool\n if (process.env.BP_DEBUG) console.log(\"[Main] Initializing parent worker with pool...\");\n initializeParentWorker(bot);\n } else if (isWorkerMode() && process.env.IS_DEV_WORKER === \"true\") {\n // Branch 2: Worker thread - run child worker\n if (process.env.BP_DEBUG) console.log(\"[Worker] Initializing child worker...\");\n runWorker(bot);\n setupAdkRuntime(bot);\n } else {\n // Branch 3: Worker mode disabled - single-thread mode\n if (process.env.BP_DEBUG) console.log(\"[Bot] Running in single-thread mode\");\n setupAdkRuntime(bot);\n }\n\n export default bot\n `\n\n await createFile(path.join(this.outputPath, 'src', 'index.ts'), await formatCode(content))\n }\n\n private async generatePackageJson(project: AgentProject): Promise<void> {\n const packageJson = {\n name: `@bp-templates/${project.config?.name || 'agent'}-bot`,\n scripts: {\n 'check:type': 'tsc --noEmit',\n },\n private: true,\n dependencies: {\n '@botpress/client': '1.24.2',\n '@botpress/sdk': '4.15.7',\n '@botpress/runtime': 'workspace:*',\n },\n devDependencies: {\n '@types/node': '^22.16.4',\n typescript: '^5.6.3',\n },\n }\n\n await createFile(path.join(this.outputPath, 'package.json'), JSON.stringify(packageJson, null, 2))\n }\n\n private async generateTsConfig(): Promise<void> {\n const tsConfig = {\n compilerOptions: {\n lib: ['es2022'],\n module: 'es2022',\n strict: true,\n esModuleInterop: true,\n skipLibCheck: true,\n forceConsistentCasingInFileNames: true,\n moduleResolution: 'bundler',\n allowUnusedLabels: false,\n allowUnreachableCode: false,\n noFallthroughCasesInSwitch: true,\n noImplicitOverride: true,\n noImplicitReturns: true,\n noUncheckedIndexedAccess: true,\n noUnusedParameters: true,\n target: 'es2017',\n baseUrl: '.',\n outDir: 'dist',\n checkJs: false,\n incremental: true,\n exactOptionalPropertyTypes: false,\n resolveJsonModule: true,\n noPropertyAccessFromIndexSignature: false,\n noUnusedLocals: false,\n },\n include: ['.botpress/**/*', 'src/**/*', 'bp_modules/**/*', './*.ts', './*.json'],\n }\n\n await createFile(path.join(this.outputPath, 'tsconfig.json'), JSON.stringify(tsConfig, null, 2))\n }\n\n private async generateGlobalTypes(): Promise<void> {\n const content = dedent`\n // Global types for ADK assets\n declare global {\n const assets: {\n get(path: string): Promise<{\n url: string;\n path: string;\n name: string;\n size: number;\n mime: string;\n hash: string;\n createdAt: string;\n updatedAt: string;\n fileId: string;\n }>;\n };\n }\n\n export {};\n `\n\n await createFile(path.join(this.outputPath, 'global.d.ts'), await formatCode(content))\n }\n\n private async copyAssets(): Promise<void> {\n const assetsPath = path.join(this.projectPath, 'assets')\n const targetPath = path.join(this.outputPath, 'assets')\n\n if (existsSync(assetsPath)) {\n await fs.mkdir(targetPath, { recursive: true })\n // Copy assets recursively\n await this.copyDirectory(assetsPath, targetPath)\n }\n }\n\n private async copyDirectory(src: string, dest: string): Promise<void> {\n const entries = await fs.readdir(src, { withFileTypes: true })\n\n for (const entry of entries) {\n const srcPath = path.join(src, entry.name)\n const destPath = path.join(dest, entry.name)\n\n if (entry.isDirectory()) {\n await fs.mkdir(destPath, { recursive: true })\n await this.copyDirectory(srcPath, destPath)\n } else {\n await fs.copyFile(srcPath, destPath)\n }\n }\n }\n\n async generateAdkRuntime(): Promise<void> {\n const project = new AgentProject(this.projectPath)\n await project.reload()\n\n const srcDir = path.join(this.outputPath, 'src')\n\n /* <conversations.ts> */ {\n const dest = path.join(srcDir, 'conversations.ts')\n const imports = new Map<\n string,\n {\n statement: string\n name: string\n }\n >()\n const exports = new Set<string>()\n let index = 1\n\n for (const conversation of project.conversations) {\n if (!imports.has(conversation.path)) {\n const name = `conversations_${index++}`\n const importPath = getImportPath(dest, path.join(project.path, conversation.path))\n\n imports.set(conversation.path, {\n name,\n statement: `import * as ${name} from \"${importPath}\";`,\n })\n }\n\n exports.add(\n `\"${conversation.definition.channel}\": ${imports.get(conversation.path)!.name}.${conversation.export}`\n )\n }\n\n const content = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: conversations.ts\n ////////////////////////////////////////////////////////\n\n ${Array.from(imports)\n .map(([, { statement }]) => `${statement}`)\n .join('\\n')}\n\n export const Conversations = {\n ${Array.from(exports).join(',\\n')}\n };\n `\n\n await createFile(dest, await formatCode(content))\n } /* </conversations.ts> */\n\n /* <knowledge.ts> */ {\n const dest = path.join(srcDir, 'knowledge.ts')\n const imports = new Map<\n string,\n {\n statement: string\n name: string\n }\n >()\n const exports = new Set<string>()\n let index = 1\n\n for (const knowledge of project.knowledge) {\n if (!imports.has(knowledge.path)) {\n const name = `knowledge_${index++}`\n const importPath = getImportPath(dest, path.join(project.path, knowledge.path))\n\n imports.set(knowledge.path, {\n name,\n statement: `import * as ${name} from \"${importPath}\";`,\n })\n }\n\n exports.add(`\"${knowledge.definition.name}\": ${imports.get(knowledge.path)!.name}.${knowledge.export}`)\n }\n\n const content = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: knowledge.ts\n ////////////////////////////////////////////////////////\n\n ${Array.from(imports)\n .map(([, { statement }]) => `${statement}`)\n .join('\\n')}\n\n export const Knowledge = {\n ${Array.from(exports).join(',\\n')}\n };\n `\n\n await createFile(dest, await formatCode(content))\n } /* </knowledge.ts> */\n\n /* <triggers.ts> */ {\n const dest = path.join(srcDir, 'triggers.ts')\n const { transforms } = await import('@botpress/sdk')\n const imports = new Map<\n string,\n {\n statement: string\n name: string\n }\n >()\n const exports = new Set<string>()\n const payloadTypes: Record<string, string> = {}\n let index = 1\n\n // First pass: collect imports and exports\n for (const trigger of project.triggers) {\n if (!imports.has(trigger.path)) {\n const name = `triggers_${index++}`\n const importPath = getImportPath(dest, path.join(project.path, trigger.path))\n\n imports.set(trigger.path, {\n name,\n statement: `import * as ${name} from \"${importPath}\";`,\n })\n }\n\n exports.add(`\"${trigger.definition.name}\": ${imports.get(trigger.path)!.name}.${trigger.export}`)\n }\n\n // Second pass: extract payload schemas and compile to TypeScript types\n for (const trigger of project.triggers) {\n try {\n // Import the trigger module to get the actual instance\n const absolutePath = path.join(project.path, trigger.path)\n // Bust module cache to ensure fresh trigger on regeneration\n const triggerModule = await import(`${absolutePath}?t=${Date.now()}`)\n const triggerInstance = triggerModule[trigger.export] || triggerModule.default\n\n if (triggerInstance && triggerInstance.payload) {\n // Convert Zod schema to JSON Schema, then to TypeScript type\n const jsonSchema = transforms.toJSONSchema(triggerInstance.payload)\n const payloadType = transforms.fromJSONSchema(jsonSchema).toTypescriptType()\n payloadTypes[trigger.definition.name] = payloadType\n } else {\n payloadTypes[trigger.definition.name] = '{}'\n }\n } catch (error) {\n console.warn(`Warning: Could not process trigger ${trigger.definition.name}:`, error)\n payloadTypes[trigger.definition.name] = '{}'\n }\n }\n\n const content = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: triggers.ts\n ////////////////////////////////////////////////////////\n\n ${Array.from(imports)\n .map(([, { statement }]) => `${statement}`)\n .join('\\n')}\n\n export const Triggers = {\n ${Array.from(exports).join(',\\n')}\n };\n\n // Extract trigger payload types with compiled TypeScript types\n type _TriggerPayloads = {\n ${Object.entries(payloadTypes)\n .map(([name, type]) => `\"${name}\": ${type}`)\n .join(';\\n ')}\n };\n\n declare global {\n export type TriggerPayloads = _TriggerPayloads;\n }\n `\n\n await createFile(dest, await formatCode(content))\n } /* </triggers.ts> */\n\n /* <workflows.ts> */ {\n const dest = path.join(srcDir, 'workflows.ts')\n const imports = new Map<\n string,\n {\n statement: string\n name: string\n }\n >()\n const exports = new Set<string>()\n let index = 1\n\n for (const workflow of project.workflows) {\n if (isBuiltinWorkflow(workflow.definition.name)) {\n // Built-in workflow - already handled in runtime\n continue\n }\n\n if (!imports.has(workflow.path)) {\n // User-defined workflow - import from project\n const name = `workflows_${index++}`\n const importPath = getImportPath(dest, path.join(project.path, workflow.path))\n\n const statement = `import * as ${name} from \"${importPath}\";`\n imports.set(workflow.path, {\n name,\n statement,\n })\n }\n }\n\n // Generate exports\n for (const workflow of project.workflows) {\n if (isBuiltinWorkflow(workflow.definition.name)) {\n // Built-in workflow - already handled in runtime\n continue\n }\n\n const importEntry = imports.get(workflow.path)!\n const exportStatement = workflow.export.replace('].', ']!.')\n\n exports.add(`\"${workflow.definition.name}\": ${importEntry.name}.${exportStatement}`)\n }\n\n const content = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: workflows.ts\n ////////////////////////////////////////////////////////\n\n ${Array.from(imports)\n .map(([, { statement }]) => `${statement}`)\n .join('\\n')}\n\n export const Workflows = {\n ${Array.from(exports).join(',\\n')}\n };\n `\n\n await createFile(dest, await formatCode(content))\n } /* </workflows.ts> */\n\n /* <actions.ts> */ {\n const dest = path.join(srcDir, 'actions.ts')\n const imports = new Map<\n string,\n {\n statement: string\n name: string\n }\n >()\n const exports = new Set<string>()\n let index = 1\n\n for (const action of project.actions) {\n if (!imports.has(action.path)) {\n const name = `actions_${index++}`\n const importPath = getImportPath(dest, path.join(project.path, action.path))\n\n imports.set(action.path, {\n name,\n statement: `import * as ${name} from \"${importPath}\";`,\n })\n }\n\n exports.add(`\"${action.definition.name}\": ${imports.get(action.path)!.name}.${action.export}`)\n }\n\n const content = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: actions.ts\n ////////////////////////////////////////////////////////\n\n ${Array.from(imports)\n .map(([, { statement }]) => `${statement}`)\n .join('\\n')}\n\n export const Actions = {\n ${Array.from(exports).join(',\\n')}\n };\n `\n\n await createFile(dest, await formatCode(content))\n } /* </actions.ts> */\n\n /* <tables.ts> */ {\n const dest = path.join(srcDir, 'tables.ts')\n const imports = new Map<\n string,\n {\n statement: string\n name: string\n }\n >()\n const exports = new Set<string>()\n let index = 1\n\n for (const table of project.tables) {\n if (!imports.has(table.path)) {\n const name = `tables_${index++}`\n const importPath = getImportPath(dest, path.join(project.path, table.path))\n\n imports.set(table.path, {\n name,\n statement: `import * as ${name} from \"${importPath}\";`,\n })\n }\n\n exports.add(`\"${table.definition.name}\": ${imports.get(table.path)!.name}.${table.export}`)\n }\n\n const content = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: tables.ts\n ////////////////////////////////////////////////////////\n\n ${Array.from(imports)\n .map(([, { statement }]) => `${statement}`)\n .join('\\n')}\n\n export const Tables = {\n ${Array.from(exports).join(',\\n')}\n };\n `\n\n await createFile(dest, await formatCode(content))\n } /* </tables.ts> */\n\n /* <config.ts> */ {\n const dest = path.join(srcDir, 'config.ts')\n const importPath = getImportPath(dest, path.join(project.path, 'agent.config.ts'))\n\n const content = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: config.ts\n ////////////////////////////////////////////////////////\n\n import AgentConfigImport from \"${importPath}\";\n\n export const AgentConfig = AgentConfigImport;\n `\n\n await createFile(dest, await formatCode(content))\n } /* </config.ts> */\n\n const content = dedent`\n import * as bp from \".botpress\";\n import { IntegrationDefinitions } from \"./integrations\";\n import { InterfaceDefinitions } from \"./interfaces\";\n import { initializeAssets } from \"./assets-runtime\";\n import { handlers, patchHandlers, agentRegistry, z, initialize, register, registerIntegration } from \"@botpress/runtime/runtime\";\n import { AgentConfig } from \"./config\";\n import { Conversations } from \"./conversations\";\n import { Knowledge } from \"./knowledge\";\n import { Triggers } from \"./triggers\";\n import { Workflows } from \"./workflows\";\n import { Actions } from \"./actions\";\n import { Tables } from \"./tables\";\n import { Interfaces } from \"../../interfaces\";\n\n export function setupAdkRuntime(bot: bp.Bot) {\n // Initialize global error handlers for the runtime\n\n initialize({ config: AgentConfig })\n\n register(...Object.values(Conversations));\n register(...Object.values(Workflows));\n register(...Object.values(Triggers));\n register(...Object.values(Actions));\n register(...Object.values(Tables));\n register(...Object.values(Knowledge));\n\n for (const [alias, { definition }] of Object.entries(IntegrationDefinitions)) {\n registerIntegration({ alias, definition });\n }\n\n // Initialize the global agent registry\n agentRegistry.initialize({\n integrations: Object.entries(IntegrationDefinitions).map(([alias, def]) => ({ ...def, alias })),\n interfaces: Object.entries(InterfaceDefinitions).map(([alias, def]) => ({ ...def, alias })),\n interfacesMapping: Interfaces as Record<string, any>\n });\n\n // Patch bot handlers to add runtime context\n patchHandlers(bot);\n\n // Initialize assets system\n initializeAssets();\n\n // Setup conversation, trigger, and workflow handlers\n handlers.conversation.setup(bot);\n handlers.event.setup(bot);\n handlers.trigger.setup(bot);\n handlers.workflow.setup(bot);\n }\n `\n\n await createFile(path.join(this.outputPath, 'src', 'adk-runtime.ts'), await formatCode(content))\n }\n\n async copyAssetsRuntime(): Promise<void> {\n const assetsRuntimePath = path.join(this.projectPath, '.adk', 'assets-runtime.ts')\n if (existsSync(assetsRuntimePath)) {\n const content = await fs.readFile(assetsRuntimePath, 'utf-8')\n await createFile(path.join(this.outputPath, 'src', 'assets-runtime.ts'), await formatCode(content))\n }\n }\n}\n\nexport async function generateBotProject(options: BotGeneratorOptions): Promise<void> {\n const generator = new BotGenerator(options)\n await generator.generate()\n await generator.generateAdkRuntime()\n await generator.copyAssetsRuntime()\n\n // Handle devId/botId management\n const devIdManager = new DevIdManager(\n options.projectPath,\n options.outputPath || path.join(options.projectPath, '.adk', 'bot')\n )\n\n // Restore any saved devId/botId from agent.json to project cache\n await devIdManager.restoreDevId()\n\n // Sync integrations\n const integrationSync = new IntegrationSync(\n options.projectPath,\n options.outputPath || path.join(options.projectPath, '.adk', 'bot')\n )\n const integrationSyncResult = await integrationSync.syncIntegrations()\n\n if (integrationSyncResult.errors.length > 0) {\n console.warn(`⚠️ Some integrations failed to sync:`)\n integrationSyncResult.errors.forEach(({ alias, error }) => {\n console.warn(` - ${alias}: ${error}`)\n })\n }\n\n // Sync interfaces\n const interfaceSync = new InterfaceSync(\n options.projectPath,\n options.outputPath || path.join(options.projectPath, '.adk', 'bot')\n )\n const interfaceSyncResult = await interfaceSync.syncInterfaces()\n\n if (interfaceSyncResult.errors.length > 0) {\n console.warn(`⚠️ Some interfaces failed to sync:`)\n interfaceSyncResult.errors.forEach(({ alias, error }) => {\n console.warn(` - ${alias}: ${error}`)\n })\n }\n}\n",
50
+ "import dedent from 'dedent'\nimport { existsSync } from 'fs'\nimport fs from 'fs/promises'\nimport path from 'path'\nimport { AgentProject } from '../agent-project/index.js'\nimport { generateIntegrationTypes } from '../generators/integration-types.js'\nimport { generateInterfaceTypes } from '../generators/interface-types.js'\nimport { generateTableTypes } from '../generators/table-types.js'\nimport { generateTriggerTypes } from '../generators/trigger-types.js'\nimport { generateStateTypes } from '../generators/state-types.js'\nimport { generateWorkflowTypes } from '../generators/workflow-types.js'\nimport { generateConversationTypes } from '../generators/conversation-types.js'\nimport { generateEventTypes } from '../generators/event-types.js'\nimport { IntegrationManager } from '../integrations/manager.js'\nimport { InterfaceManager } from '../interfaces/manager.js'\nimport { createFile } from '../utils/fs.js'\nimport { pascalCase } from '../utils/strings.js'\nimport { DevIdManager } from './dev-id-manager.js'\nimport { IntegrationSync } from './integration-sync.js'\nimport { InterfaceSync } from './interface-sync.js'\nimport { formatCode, ADK_VERSION } from '../generators/utils.js'\nimport { transforms, z } from '@botpress/sdk'\nimport { getIntegrationAlias } from '../utils/ids.js'\nimport { BUILTIN_INTERFACES } from '../constants.js'\nimport { BuiltInWorkflows, Primitives, Workflow } from '@botpress/runtime/internal'\n\nexport interface BotGeneratorOptions {\n projectPath: string\n outputPath?: string\n adkCommand?: 'adk-dev' | 'adk-build' | 'adk-deploy'\n}\n\nfunction isBuiltinWorkflow(name: string): boolean {\n return !!Object.values(BuiltInWorkflows).find((x) => x.name === name)\n}\n\n/**\n * Generate a normalized import path for use in import statements\n * Converts Windows backslashes to forward slashes and removes .ts extension\n */\nfunction getImportPath(from: string, to: string): string {\n return path.relative(path.dirname(from), to).replace(/\\.ts$/, '').replace(/\\\\/g, '/')\n}\n\nexport class BotGenerator {\n private projectPath: string\n private outputPath: string\n\n constructor(options: BotGeneratorOptions) {\n this.projectPath = path.resolve(options.projectPath)\n this.outputPath = path.resolve(options.outputPath || path.join(this.projectPath, '.adk'))\n }\n\n private async listFilesRecursive(rootDir: string): Promise<string[]> {\n try {\n if (!existsSync(rootDir)) return []\n const result: string[] = []\n const walk = async (dir: string, relativeBase: string) => {\n const entries = await fs.readdir(dir, { withFileTypes: true })\n for (const entry of entries) {\n const abs = path.join(dir, entry.name)\n const rel = path.join(relativeBase, entry.name)\n if (entry.isDirectory()) {\n await walk(abs, rel)\n } else {\n result.push(rel)\n }\n }\n }\n await walk(rootDir, '')\n return result.sort()\n } catch {\n return []\n }\n }\n\n private async removeEmptyDirectories(rootDir: string): Promise<void> {\n if (!existsSync(rootDir)) return\n const removeIfEmpty = async (dir: string) => {\n const entries = await fs.readdir(dir, { withFileTypes: true })\n for (const entry of entries) {\n if (entry.isDirectory()) {\n const subdir = path.join(dir, entry.name)\n await removeIfEmpty(subdir)\n }\n }\n\n // Re-read after potential removals\n const after = await fs.readdir(dir)\n if (after.length === 0 && dir !== rootDir) {\n try {\n await fs.rmdir(dir, { recursive: false })\n } catch {}\n }\n }\n await removeIfEmpty(rootDir)\n }\n\n async generate(): Promise<void> {\n // Load the agent project\n const project = await AgentProject.load(this.projectPath)\n\n // Create output directory\n await fs.mkdir(this.outputPath, { recursive: true })\n\n // Generate bot files\n await this.generateBotDefinition()\n await this.generateIntegrationsDefinition()\n await this.generateInterfacesDefinition()\n await this.generateIntegrationsTypes()\n await this.generateInterfacesTypes()\n await this.generateTableTypes()\n await this.generateTriggerTypes()\n await this.generateStateTypes()\n await this.generateWorkflowTypes()\n await this.generateConversationTypes()\n await this.generateActionTypes()\n await this.generateEventTypes()\n await this.generateIntegrationActionTypes()\n await this.generateRuntimeTypes()\n await this.generateBotIndex()\n await this.generatePackageJson(project)\n await this.generateTsConfig()\n await this.generateGlobalTypes()\n await this.copyAssets()\n }\n\n private async generateIntegrationsTypes(): Promise<void> {\n // Load the project to get interfaces\n const project = await AgentProject.load(this.projectPath)\n const manager = new IntegrationManager({\n workspaceId: project.agentInfo?.workspaceId,\n })\n const integrations = await manager.loadIntegrations(project.dependencies || {})\n\n // List existing files before generation (.adk/integrations)\n const integrationsDir = path.join(this.projectPath, '.adk', 'integrations')\n const existingIntegrationFiles = await this.listFilesRecursive(integrationsDir)\n\n let aliases = new Set<string>()\n let files = new Set<string>() // tracks all files created in this run (relative to .adk/integrations)\n\n // Generate imports for each integration\n for (const integration of integrations.integrations) {\n if (integration.enabled && integration.definition) {\n const types = await generateIntegrationTypes(integration)\n\n // Use dynamic import for type\n const importPath = `./${path.join('integrations', types.names.paths.index).replace(/\\\\/g, '/')}`\n aliases.add(`\"${integration.alias}\": import(\"${importPath}\").${types.names.typings.index}`)\n\n for (const [filePath, content] of Object.entries(types.files)) {\n const fullPath = path.join(this.projectPath, '.adk', 'integrations', filePath)\n\n const dir = path.dirname(fullPath)\n await fs.mkdir(dir, { recursive: true })\n await createFile(fullPath, content)\n files.add(filePath)\n }\n }\n }\n\n const types = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: integrations.ts\n ////////////////////////////////////////////////////////\n\n declare module \"@botpress/runtime/_types/integrations\" {\n export type Integrations = {\n ${Array.from(aliases).join(`, `)}\n };\n }\n `\n\n await createFile(path.join(this.projectPath, '.adk', 'integrations.d.ts'), await formatCode(types))\n\n // Cleanup stale integration files\n const staleIntegrationFiles = existingIntegrationFiles.filter((f) => !files.has(f))\n if (staleIntegrationFiles.length > 0) {\n for (const rel of staleIntegrationFiles) {\n const abs = path.join(integrationsDir, rel)\n try {\n await fs.rm(abs, { force: true })\n } catch {}\n }\n }\n // remove empty folders after deletion\n await this.removeEmptyDirectories(integrationsDir)\n }\n\n private async generateTableTypes(): Promise<void> {\n const project = await AgentProject.load(this.projectPath)\n await generateTableTypes(project)\n }\n\n private async generateTriggerTypes(): Promise<void> {\n const project = await AgentProject.load(this.projectPath)\n await generateTriggerTypes(project)\n }\n\n private async generateStateTypes(): Promise<void> {\n const project = await AgentProject.load(this.projectPath)\n await generateStateTypes(project)\n }\n\n private async generateEventTypes(): Promise<void> {\n const project = await AgentProject.load(this.projectPath)\n await generateEventTypes(project)\n }\n\n private async generateWorkflowTypes(): Promise<void> {\n const project = await AgentProject.load(this.projectPath)\n await generateWorkflowTypes(project)\n }\n\n private async generateConversationTypes(): Promise<void> {\n const project = await AgentProject.load(this.projectPath)\n await generateConversationTypes(project)\n }\n\n private async generateActionTypes(): Promise<void> {\n const project = await AgentProject.load(this.projectPath)\n const { generateActionTypes } = await import('../generators/action-types.js')\n await generateActionTypes(project)\n }\n\n private async generateIntegrationActionTypes(): Promise<void> {\n const project = await AgentProject.load(this.projectPath)\n const { generateIntegrationActionTypes } = await import('../generators/integration-action-types.js')\n await generateIntegrationActionTypes(project)\n }\n\n private async generateRuntimeTypes(): Promise<void> {\n // Load the project for conditional imports\n const project = await AgentProject.load(this.projectPath)\n\n // Load integrations to generate channel types\n const manager = new IntegrationManager({\n workspaceId: project.agentInfo?.workspaceId,\n })\n const integrations = await manager.loadIntegrations(project.dependencies || {})\n\n // Collect all channel names from integrations\n const channels: string[] = []\n for (const integration of integrations.integrations) {\n if (integration.enabled && integration.definition) {\n const alias = integration.alias\n for (const channelName of Object.keys(integration.definition.channels || {})) {\n channels.push(`\"${alias}.${channelName}\"`)\n }\n }\n }\n\n // Generate channel union type\n const channelsType = channels.length > 0 ? channels.join(' | ') : 'never'\n\n // Get state types from agent config\n let botStateType = '{}'\n let userStateType = '{}'\n\n try {\n const configPath = path.join(project.path, 'agent.config.ts')\n // Bust module cache to ensure fresh config on regeneration\n const configModule = await import(`${configPath}?t=${Date.now()}`)\n const config = configModule.default\n\n if (config?.bot?.state) {\n const botSchema = config.bot.state as z.ZodTypeAny\n if (botSchema.toTypescriptType) {\n botStateType = botSchema.toTypescriptType()\n }\n }\n\n if (config?.user?.state) {\n const userSchema = config.user.state as z.ZodTypeAny\n if (userSchema.toTypescriptType) {\n userStateType = userSchema.toTypescriptType()\n }\n }\n } catch (error) {\n console.warn('Failed to load agent config for state types:', error)\n }\n\n const types = `\n////////////////////////////////////////////////////////\n// DO NOT EDIT THIS FILE DIRECTLY\n// This file is auto-generated from the Botpress ADK\n// ADK Version: ${ADK_VERSION}\n// Generated at: ${new Date().toISOString()}\n////////////////////////////////////////////////////////\n\ndeclare module \"@botpress/runtime/_types/channels\" {\n export type Channels = ${channelsType};\n export type ChannelSpec = Channels | readonly Channels[] | '*';\n}\n\ndeclare module \"@botpress/runtime/_types/state\" {\n export type BotState = ${botStateType};\n export type UserState = ${userStateType};\n}\n`\n\n await createFile(path.join(this.projectPath, '.adk', 'runtime.d.ts'), await formatCode(types))\n }\n\n private async generateInterfacesTypes(): Promise<void> {\n // Load the project to get interfaces\n const project = await AgentProject.load(this.projectPath)\n const integrationManager = new IntegrationManager({\n workspaceId: project.agentInfo?.workspaceId,\n })\n const manager = new InterfaceManager()\n\n // List existing files before generation (.adk/interfaces)\n const interfacesDir = path.join(this.projectPath, '.adk', 'interfaces')\n const existingInterfaceFiles = await this.listFilesRecursive(interfacesDir)\n\n const interfaces = await manager\n .loadInterfaces(project.dependencies || {})\n .then((result) => result.interfaces.filter((int) => int.definition).map((x) => x.definition!))\n\n const integrations = await integrationManager\n .loadIntegrations(project.dependencies || {})\n .then((result) => result.integrations.filter((int) => int.enabled && int.definition).map((x) => x.definition!))\n\n let imports = new Set<string>()\n let aliases = new Set<string>()\n let files = new Set<string>() // tracks all files created in this run (relative to .adk/interfaces)\n\n // Generate imports for each integration\n for (const int of interfaces) {\n const types = await generateInterfaceTypes(int, integrations)\n\n imports.add(\n `import { ${types.names.typings.index} } from \"./${path.join('interfaces', types.names.paths.index).replace(/\\\\/g, '/')}\";`\n )\n\n aliases.add(`\"${types.names.name}\": ${types.names.typings.index}`)\n\n for (const [filePath, content] of Object.entries(types.files)) {\n const fullPath = path.join(this.projectPath, '.adk', 'interfaces', filePath)\n\n const dir = path.dirname(fullPath)\n await fs.mkdir(dir, { recursive: true })\n await createFile(fullPath, content)\n files.add(filePath)\n }\n }\n\n const types = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: interfaces.d.ts\n ////////////////////////////////////////////////////////\n\n ${Array.from(imports).join('\\n')}\n\n declare global {\n export type Interfaces = {\n ${Array.from(aliases).join(`, `)}\n };\n }\n `\n\n const consts = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: interfaces.ts\n ////////////////////////////////////////////////////////\n\n ${Array.from(imports)\n .map((x) => x.replace('.ts\"', '\"'))\n .join('\\n')}\n\n export const Interfaces = {\n ${Array.from(aliases).join(',\\n')}\n };\n `\n\n await createFile(path.join(this.projectPath, '.adk', 'interfaces.d.ts'), await formatCode(types))\n\n await createFile(path.join(this.projectPath, '.adk', 'interfaces.ts'), await formatCode(consts))\n\n // Cleanup stale interface files\n const staleInterfaceFiles = existingInterfaceFiles.filter((f) => !files.has(f))\n if (staleInterfaceFiles.length > 0) {\n for (const rel of staleInterfaceFiles) {\n const abs = path.join(interfacesDir, rel)\n try {\n await fs.rm(abs, { force: true })\n } catch {}\n }\n }\n // remove empty folders after deletion\n await this.removeEmptyDirectories(interfacesDir)\n }\n\n private async generateIntegrationsDefinition(): Promise<void> {\n // Load the project to get integrations\n const project = await AgentProject.load(this.projectPath)\n const integrations = project.dependencies?.integrations || {}\n\n // Generate imports for each integration\n const imports: string[] = []\n const integrationDefs: string[] = []\n\n for (const alias of Object.keys(integrations).map(getIntegrationAlias)) {\n imports.push(`import integration_${alias} from \"../bp_modules/integration_${alias}\";`)\n integrationDefs.push(`${alias}: integration_${alias}`)\n }\n\n const content = dedent`\n import { IntegrationPackage } from \"@botpress/sdk\";\n\n ${imports.length > 0 ? '\\n' + imports.join('\\n') : ''}\n\n export const IntegrationDefinitions = {\n ${integrationDefs.length > 0 ? integrationDefs.join(',\\n') : ''}\n } as Record<string, IntegrationPackage>;\n `\n\n await createFile(path.join(this.outputPath, 'src', 'integrations.ts'), content)\n }\n\n private async generateInterfacesDefinition(): Promise<void> {\n // Use hard-coded built-in interfaces\n const interfaces = BUILTIN_INTERFACES\n\n // Generate imports for each interface\n const imports: string[] = []\n const interfaceDefs: string[] = []\n\n for (const alias of Object.keys(interfaces)) {\n const pascalAlias = pascalCase(alias)\n imports.push(`import interface_${pascalAlias} from \"../bp_modules/interface_${pascalAlias}\";`)\n interfaceDefs.push(`${pascalAlias}: interface_${pascalAlias}`)\n }\n\n const content = dedent`\n import { InterfacePackage } from \"@botpress/sdk\";\n\n ${imports.length > 0 ? '\\n' + imports.join('\\n') : ''}\n\n export const InterfaceDefinitions = {\n ${interfaceDefs.length > 0 ? interfaceDefs.join(',\\n') : ''}\n } as Record<string, InterfacePackage>;\n `\n\n await createFile(path.join(this.outputPath, 'src', 'interfaces.ts'), await formatCode(content))\n }\n\n private async generateBotDefinition(): Promise<void> {\n // Load the project to get integrations, interfaces, and triggers\n const project = await AgentProject.load(this.projectPath)\n const integrations = project.integrations\n\n // Generate imports for each integration and interface\n const imports: string[] = []\n const addIntegrations: string[] = []\n\n for (const { alias } of integrations.filter((i) => i.enabled)) {\n const importName = `integration_${getIntegrationAlias(alias)}`\n imports.push(`import ${importName} from \"./bp_modules/${importName}\";`)\n addIntegrations.push(`bot.addIntegration(${importName}, { alias: \"${alias}\" });`)\n }\n\n // Generate trigger tags for conversations\n const conversationTags: Record<string, any> = {}\n const workflowTags: Record<string, any> = {}\n\n // Helper to hash strings - creates short uppercase hashes\n const crypto = require('crypto')\n const hashString = (str: string) => {\n return crypto.createHash('md5').update(str).digest('hex').substring(0, 5).toUpperCase()\n }\n\n // For each trigger, we need to add possible tags\n for (const trigger of project.triggers) {\n const triggerName = trigger.definition.name\n\n // Add tag for this trigger - the tag name is based on trigger name\n // The value can be \"*\" for wildcard or a specific match result\n const tagName = `trigger${hashString(triggerName)}`\n conversationTags[tagName] = {\n title: `Trigger: ${triggerName}`,\n description: `Subscribe to events from trigger \"${triggerName}\" (use \"*\" for all events or specific values)`,\n }\n\n // TODO: Only add workflow tags when workflows exist\n // Currently we don't support workflow definitions yet\n // When implemented, check if project.workflows.length > 0\n // workflowTags[tagName] = {\n // title: `Trigger: ${triggerName}`,\n // description: `Subscribe to events from trigger \"${triggerName}\" (use \"*\" for all events or specific values)`\n // };\n }\n\n // Load workflow definitions at build time and generate their schemas\n const workflowDefs: string[] = []\n const recurringWorkflows: Array<{ name: string; schedule: string }> = []\n\n const workflowInstances: Workflow<any>[] = []\n\n for (const workflow of project.workflows) {\n try {\n if (isBuiltinWorkflow(workflow.definition.name)) {\n // Built-in workflow - already handled in runtime\n continue\n }\n\n // User-defined workflow - import from project\n const workflowPath = path.join(project.path, workflow.path)\n // Bust module cache to ensure fresh workflow on regeneration\n const workflowModule = await import(`${workflowPath}?t=${Date.now()}`)\n const workflowInstance = (workflowModule.default || workflowModule[workflow.export]) as Workflow | undefined\n\n if (workflowInstance) {\n workflowInstances.push(workflowInstance)\n }\n } catch (error) {\n console.error(`Failed to load workflow ${workflow.definition.name}:`, error)\n }\n }\n\n for (const workflow of Object.values(BuiltInWorkflows)) {\n workflowInstances.push(workflow)\n }\n\n for (const workflow of workflowInstances) {\n const definition = Primitives.Definitions.getDefinition(workflow)\n if (!Primitives.Definitions.isWorkflowDefinition(definition)) {\n continue\n }\n\n // Check if workflow has a schedule property for recurring execution\n if (definition.schedule) {\n recurringWorkflows.push({\n name: definition.name,\n schedule: definition.schedule,\n })\n }\n\n // Generate the workflow definition as inline code\n const inputSchema = definition.input\n ? transforms.fromJSONSchema(definition.input).naked().toTypescriptSchema()\n : 'z.object({})'\n\n const outputSchema = definition.output\n ? transforms.fromJSONSchema(definition.output).naked().toTypescriptSchema()\n : 'z.object({})'\n\n const parts = []\n if (definition.description) {\n parts.push(`title: ${JSON.stringify(definition.name)}`)\n parts.push(`description: ${JSON.stringify(definition.description)}`)\n }\n parts.push(`input: { schema: ${inputSchema} }`)\n parts.push(`output: { schema: ${outputSchema} }`)\n\n // Add the key tag for workflow discrimination\n parts.push(`tags: {\n key: {\n title: \"Workflow Key\",\n description: \"Unique key for workflow deduplication\"\n }\n }`)\n\n workflowDefs.push(`\"${definition.name}\": {\\n ${parts.join(',\\n ')}\\n }`)\n }\n\n const actionDefs: Record<string, any> = {}\n for (const action of project.actions) {\n const def = action.definition\n // Include ALL actions in bot.definition.ts (even hidden ones)\n actionDefs[def.name] = {\n title: def.title,\n description: def.description,\n attributes: def.attributes,\n input: def.input,\n output: def.output,\n cached: def.cached,\n }\n }\n\n const toEventName = (ename: string) => ename.replaceAll(/[^a-zA-Z0-9]/g, '').toLowerCase()\n\n const content = dedent`\n import { BotDefinition, z } from \"@botpress/sdk\";\n import {\n BUILT_IN_STATES,\n TranscriptSchema,\n TrackedStateSchema,\n WorkflowCallbackEvent,\n WorkflowScheduleEvent,\n WorkflowContinueEvent,\n SubworkflowFinished,\n WorkflowDataRequestEvent,\n } from \"@botpress/runtime/definition\";\n ${imports.length > 0 ? '\\n' + imports.join('\\n') : ''}\n\n const bot = new BotDefinition({\n conversation: {\n tags: {\n ${Object.entries(conversationTags)\n .map(\n ([tag, meta]) =>\n `// ${meta.title}\\n // ${meta.description}\\n \"${tag}\": ${JSON.stringify(meta)}`\n )\n .join(',\\n ')}\n },\n },\n ${\n Object.keys(workflowTags).length > 0\n ? `workflow: {\n tags: {\n ${Object.entries(workflowTags)\n .map(\n ([tag, meta]) =>\n `// ${meta.title}\\n // ${meta.description}\\n \"${tag}\": ${JSON.stringify(meta)}`\n )\n .join(',\\n ')}\n },\n },`\n : ''\n }\n ${\n workflowDefs.length > 0\n ? `workflows: {\n ${workflowDefs.join(',\\n ')}\n },`\n : ''\n }\n ${\n Object.keys(actionDefs).length > 0\n ? `actions: {\n ${Object.entries(actionDefs)\n .map(([name, def]) => {\n const parts = []\n if (def.title) parts.push(`title: ${JSON.stringify(def.title)}`)\n if (def.description) parts.push(`description: ${JSON.stringify(def.description)}`)\n if (def.attributes) parts.push(`attributes: ${JSON.stringify(def.attributes)}`)\n parts.push(`input: { schema: ${transforms.fromJSONSchema(def.input).toTypescriptSchema()} }`)\n parts.push(`output: { schema: ${transforms.fromJSONSchema(def.output).toTypescriptSchema()} }`)\n return `\"${name}\": {\\n ${parts.join(',\\n ')}\\n }`\n })\n .join(',\\n ')}\n },`\n : ''\n }\n ${\n recurringWorkflows.length > 0\n ? `recurringEvents: {\n ${recurringWorkflows\n .map(\n (wf) => `\"${toEventName(wf.name + 'Schedule')}\": {\n type: WorkflowScheduleEvent.name,\n schedule: { cron: \"${wf.schedule}\" },\n payload: { workflow: \"${wf.name}\" },\n }`\n )\n .join(',\\n ')}\n },`\n : ''\n }\n\n events: {\n [WorkflowScheduleEvent.name]: {\n schema: WorkflowScheduleEvent.schema,\n },\n [WorkflowCallbackEvent.name]: {\n schema: WorkflowCallbackEvent.schema,\n },\n [WorkflowContinueEvent.name]: {\n schema: WorkflowContinueEvent.schema,\n },\n [SubworkflowFinished.name]: {\n schema: SubworkflowFinished.schema,\n },\n [WorkflowDataRequestEvent.name]: {\n schema: WorkflowDataRequestEvent.schema,\n },\n },\n\n states: {\n /**\n * This is the ADK-native conversation state that contains the\n * necessary data to run the conversation and its handlers.\n */\n conversation: {\n type: \"conversation\",\n schema: z.object({ transcript: TranscriptSchema }),\n },\n\n /**\n * This is a generic state to store the conversation-specific state.\n * This is defined by the users at build-time when they define conversations.\n * Because each conversation can have its own state schema, we use \\`z.any()\\`\n */\n [BUILT_IN_STATES.conversation]: {\n type: \"conversation\",\n schema: TrackedStateSchema,\n },\n\n /**\n * Bot-wide global state that persists across all conversations\n */\n [BUILT_IN_STATES.bot]: {\n type: \"bot\",\n schema: TrackedStateSchema,\n },\n\n /**\n * User-specific state that persists across conversations for each user\n */\n [BUILT_IN_STATES.user]: {\n type: \"user\",\n schema: TrackedStateSchema,\n },\n\n /**\n * Workflow-specific state that persists across workflow executions\n */\n [BUILT_IN_STATES.workflowState]: {\n type: \"workflow\",\n schema: TrackedStateSchema,\n },\n\n /**\n * Workflow cached steps executions\n */\n [BUILT_IN_STATES.workflowSteps]: {\n type: \"workflow\",\n schema: TrackedStateSchema,\n },\n },\n });\n\n ${addIntegrations.length > 0 ? '\\n' + addIntegrations.join('\\n') : ''}\n\n\n export default bot;\n `\n\n await createFile(path.join(this.outputPath, 'bot.definition.ts'), await formatCode(content))\n }\n\n private async generateBotIndex(): Promise<void> {\n const project = await AgentProject.load(this.projectPath)\n\n // Generate action handlers\n const actionHandlers: string[] = []\n for (const action of project.actions) {\n const def = action.definition\n actionHandlers.push(`\"${def.name}\": Actions[\"${def.name}\"].execute.bind(Actions[\"${def.name}\"])`)\n }\n\n const content = dedent`\n import * as bp from '.botpress'\n import { setupAdkRuntime } from './adk-runtime'\n import { Actions } from './actions'\n import {isMainThread, isWorkerMode, initializeParentWorker, runWorker} from '@botpress/runtime/internal'\n\n const bot = new bp.Bot({\n actions: {\n ${actionHandlers.join(',\\n ')}\n },\n })\n\n // ============================================================================\n // WORKER INITIALIZATION\n // ============================================================================\n\n if (isWorkerMode() && isMainThread) {\n // Branch 1: Main thread in worker mode - initialize parent with pool\n if (process.env.BP_DEBUG) console.log(\"[Main] Initializing parent worker with pool...\");\n initializeParentWorker(bot);\n } else if (isWorkerMode() && process.env.IS_DEV_WORKER === \"true\") {\n // Branch 2: Worker thread - run child worker\n if (process.env.BP_DEBUG) console.log(\"[Worker] Initializing child worker...\");\n runWorker(bot);\n setupAdkRuntime(bot);\n } else {\n // Branch 3: Worker mode disabled - single-thread mode\n if (process.env.BP_DEBUG) console.log(\"[Bot] Running in single-thread mode\");\n setupAdkRuntime(bot);\n }\n\n export default bot\n `\n\n await createFile(path.join(this.outputPath, 'src', 'index.ts'), await formatCode(content))\n }\n\n private async generatePackageJson(project: AgentProject): Promise<void> {\n const packageJson = {\n name: `@bp-templates/${project.config?.name || 'agent'}-bot`,\n scripts: {\n 'check:type': 'tsc --noEmit',\n },\n private: true,\n dependencies: {\n '@botpress/client': '1.24.2',\n '@botpress/sdk': '4.15.7',\n '@botpress/runtime': 'workspace:*',\n },\n devDependencies: {\n '@types/node': '^22.16.4',\n typescript: '^5.9.3',\n },\n }\n\n await createFile(path.join(this.outputPath, 'package.json'), JSON.stringify(packageJson, null, 2))\n }\n\n private async generateTsConfig(): Promise<void> {\n const tsConfig = {\n compilerOptions: {\n lib: ['es2022'],\n module: 'es2022',\n strict: true,\n esModuleInterop: true,\n skipLibCheck: true,\n forceConsistentCasingInFileNames: true,\n moduleResolution: 'bundler',\n allowUnusedLabels: false,\n allowUnreachableCode: false,\n noFallthroughCasesInSwitch: true,\n noImplicitOverride: true,\n noImplicitReturns: true,\n noUncheckedIndexedAccess: true,\n noUnusedParameters: true,\n target: 'es2017',\n baseUrl: '.',\n outDir: 'dist',\n checkJs: false,\n incremental: true,\n exactOptionalPropertyTypes: false,\n resolveJsonModule: true,\n noPropertyAccessFromIndexSignature: false,\n noUnusedLocals: false,\n },\n include: ['.botpress/**/*', 'src/**/*', 'bp_modules/**/*', './*.ts', './*.json'],\n }\n\n await createFile(path.join(this.outputPath, 'tsconfig.json'), JSON.stringify(tsConfig, null, 2))\n }\n\n private async generateGlobalTypes(): Promise<void> {\n const content = dedent`\n // Global types for ADK assets\n declare global {\n const assets: {\n get(path: string): Promise<{\n url: string;\n path: string;\n name: string;\n size: number;\n mime: string;\n hash: string;\n createdAt: string;\n updatedAt: string;\n fileId: string;\n }>;\n };\n }\n\n export {};\n `\n\n await createFile(path.join(this.outputPath, 'global.d.ts'), await formatCode(content))\n }\n\n private async copyAssets(): Promise<void> {\n const assetsPath = path.join(this.projectPath, 'assets')\n const targetPath = path.join(this.outputPath, 'assets')\n\n if (existsSync(assetsPath)) {\n await fs.mkdir(targetPath, { recursive: true })\n // Copy assets recursively\n await this.copyDirectory(assetsPath, targetPath)\n }\n }\n\n private async copyDirectory(src: string, dest: string): Promise<void> {\n const entries = await fs.readdir(src, { withFileTypes: true })\n\n for (const entry of entries) {\n const srcPath = path.join(src, entry.name)\n const destPath = path.join(dest, entry.name)\n\n if (entry.isDirectory()) {\n await fs.mkdir(destPath, { recursive: true })\n await this.copyDirectory(srcPath, destPath)\n } else {\n await fs.copyFile(srcPath, destPath)\n }\n }\n }\n\n async generateAdkRuntime(): Promise<void> {\n const project = new AgentProject(this.projectPath)\n await project.reload()\n\n const srcDir = path.join(this.outputPath, 'src')\n\n /* <conversations.ts> */ {\n const dest = path.join(srcDir, 'conversations.ts')\n const imports = new Map<\n string,\n {\n statement: string\n name: string\n }\n >()\n const exports = new Set<string>()\n let index = 1\n\n for (const conversation of project.conversations) {\n if (!imports.has(conversation.path)) {\n const name = `conversations_${index++}`\n const importPath = getImportPath(dest, path.join(project.path, conversation.path))\n\n imports.set(conversation.path, {\n name,\n statement: `import * as ${name} from \"${importPath}\";`,\n })\n }\n\n exports.add(\n `\"${conversation.definition.channel}\": ${imports.get(conversation.path)!.name}.${conversation.export}`\n )\n }\n\n const content = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: conversations.ts\n ////////////////////////////////////////////////////////\n\n ${Array.from(imports)\n .map(([, { statement }]) => `${statement}`)\n .join('\\n')}\n\n export const Conversations = {\n ${Array.from(exports).join(',\\n')}\n };\n `\n\n await createFile(dest, await formatCode(content))\n } /* </conversations.ts> */\n\n /* <knowledge.ts> */ {\n const dest = path.join(srcDir, 'knowledge.ts')\n const imports = new Map<\n string,\n {\n statement: string\n name: string\n }\n >()\n const exports = new Set<string>()\n let index = 1\n\n for (const knowledge of project.knowledge) {\n if (!imports.has(knowledge.path)) {\n const name = `knowledge_${index++}`\n const importPath = getImportPath(dest, path.join(project.path, knowledge.path))\n\n imports.set(knowledge.path, {\n name,\n statement: `import * as ${name} from \"${importPath}\";`,\n })\n }\n\n exports.add(`\"${knowledge.definition.name}\": ${imports.get(knowledge.path)!.name}.${knowledge.export}`)\n }\n\n const content = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: knowledge.ts\n ////////////////////////////////////////////////////////\n\n ${Array.from(imports)\n .map(([, { statement }]) => `${statement}`)\n .join('\\n')}\n\n export const Knowledge = {\n ${Array.from(exports).join(',\\n')}\n };\n `\n\n await createFile(dest, await formatCode(content))\n } /* </knowledge.ts> */\n\n /* <triggers.ts> */ {\n const dest = path.join(srcDir, 'triggers.ts')\n const { transforms } = await import('@botpress/sdk')\n const imports = new Map<\n string,\n {\n statement: string\n name: string\n }\n >()\n const exports = new Set<string>()\n const payloadTypes: Record<string, string> = {}\n let index = 1\n\n // First pass: collect imports and exports\n for (const trigger of project.triggers) {\n if (!imports.has(trigger.path)) {\n const name = `triggers_${index++}`\n const importPath = getImportPath(dest, path.join(project.path, trigger.path))\n\n imports.set(trigger.path, {\n name,\n statement: `import * as ${name} from \"${importPath}\";`,\n })\n }\n\n exports.add(`\"${trigger.definition.name}\": ${imports.get(trigger.path)!.name}.${trigger.export}`)\n }\n\n // Second pass: extract payload schemas and compile to TypeScript types\n for (const trigger of project.triggers) {\n try {\n // Import the trigger module to get the actual instance\n const absolutePath = path.join(project.path, trigger.path)\n // Bust module cache to ensure fresh trigger on regeneration\n const triggerModule = await import(`${absolutePath}?t=${Date.now()}`)\n const triggerInstance = triggerModule[trigger.export] || triggerModule.default\n\n if (triggerInstance && triggerInstance.payload) {\n // Convert Zod schema to JSON Schema, then to TypeScript type\n const jsonSchema = transforms.toJSONSchema(triggerInstance.payload)\n const payloadType = transforms.fromJSONSchema(jsonSchema).toTypescriptType()\n payloadTypes[trigger.definition.name] = payloadType\n } else {\n payloadTypes[trigger.definition.name] = '{}'\n }\n } catch (error) {\n console.warn(`Warning: Could not process trigger ${trigger.definition.name}:`, error)\n payloadTypes[trigger.definition.name] = '{}'\n }\n }\n\n const content = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: triggers.ts\n ////////////////////////////////////////////////////////\n\n ${Array.from(imports)\n .map(([, { statement }]) => `${statement}`)\n .join('\\n')}\n\n export const Triggers = {\n ${Array.from(exports).join(',\\n')}\n };\n\n // Extract trigger payload types with compiled TypeScript types\n type _TriggerPayloads = {\n ${Object.entries(payloadTypes)\n .map(([name, type]) => `\"${name}\": ${type}`)\n .join(';\\n ')}\n };\n\n declare global {\n export type TriggerPayloads = _TriggerPayloads;\n }\n `\n\n await createFile(dest, await formatCode(content))\n } /* </triggers.ts> */\n\n /* <workflows.ts> */ {\n const dest = path.join(srcDir, 'workflows.ts')\n const imports = new Map<\n string,\n {\n statement: string\n name: string\n }\n >()\n const exports = new Set<string>()\n let index = 1\n\n for (const workflow of project.workflows) {\n if (isBuiltinWorkflow(workflow.definition.name)) {\n // Built-in workflow - already handled in runtime\n continue\n }\n\n if (!imports.has(workflow.path)) {\n // User-defined workflow - import from project\n const name = `workflows_${index++}`\n const importPath = getImportPath(dest, path.join(project.path, workflow.path))\n\n const statement = `import * as ${name} from \"${importPath}\";`\n imports.set(workflow.path, {\n name,\n statement,\n })\n }\n }\n\n // Generate exports\n for (const workflow of project.workflows) {\n if (isBuiltinWorkflow(workflow.definition.name)) {\n // Built-in workflow - already handled in runtime\n continue\n }\n\n const importEntry = imports.get(workflow.path)!\n const exportStatement = workflow.export.replace('].', ']!.')\n\n exports.add(`\"${workflow.definition.name}\": ${importEntry.name}.${exportStatement}`)\n }\n\n const content = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: workflows.ts\n ////////////////////////////////////////////////////////\n\n ${Array.from(imports)\n .map(([, { statement }]) => `${statement}`)\n .join('\\n')}\n\n export const Workflows = {\n ${Array.from(exports).join(',\\n')}\n };\n `\n\n await createFile(dest, await formatCode(content))\n } /* </workflows.ts> */\n\n /* <actions.ts> */ {\n const dest = path.join(srcDir, 'actions.ts')\n const imports = new Map<\n string,\n {\n statement: string\n name: string\n }\n >()\n const exports = new Set<string>()\n let index = 1\n\n for (const action of project.actions) {\n if (!imports.has(action.path)) {\n const name = `actions_${index++}`\n const importPath = getImportPath(dest, path.join(project.path, action.path))\n\n imports.set(action.path, {\n name,\n statement: `import * as ${name} from \"${importPath}\";`,\n })\n }\n\n exports.add(`\"${action.definition.name}\": ${imports.get(action.path)!.name}.${action.export}`)\n }\n\n const content = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: actions.ts\n ////////////////////////////////////////////////////////\n\n ${Array.from(imports)\n .map(([, { statement }]) => `${statement}`)\n .join('\\n')}\n\n export const Actions = {\n ${Array.from(exports).join(',\\n')}\n };\n `\n\n await createFile(dest, await formatCode(content))\n } /* </actions.ts> */\n\n /* <tables.ts> */ {\n const dest = path.join(srcDir, 'tables.ts')\n const imports = new Map<\n string,\n {\n statement: string\n name: string\n }\n >()\n const exports = new Set<string>()\n let index = 1\n\n for (const table of project.tables) {\n if (!imports.has(table.path)) {\n const name = `tables_${index++}`\n const importPath = getImportPath(dest, path.join(project.path, table.path))\n\n imports.set(table.path, {\n name,\n statement: `import * as ${name} from \"${importPath}\";`,\n })\n }\n\n exports.add(`\"${table.definition.name}\": ${imports.get(table.path)!.name}.${table.export}`)\n }\n\n const content = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: tables.ts\n ////////////////////////////////////////////////////////\n\n ${Array.from(imports)\n .map(([, { statement }]) => `${statement}`)\n .join('\\n')}\n\n export const Tables = {\n ${Array.from(exports).join(',\\n')}\n };\n `\n\n await createFile(dest, await formatCode(content))\n } /* </tables.ts> */\n\n /* <config.ts> */ {\n const dest = path.join(srcDir, 'config.ts')\n const importPath = getImportPath(dest, path.join(project.path, 'agent.config.ts'))\n\n const content = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // File: config.ts\n ////////////////////////////////////////////////////////\n\n import AgentConfigImport from \"${importPath}\";\n\n export const AgentConfig = AgentConfigImport;\n `\n\n await createFile(dest, await formatCode(content))\n } /* </config.ts> */\n\n const content = dedent`\n import * as bp from \".botpress\";\n import { IntegrationDefinitions } from \"./integrations\";\n import { InterfaceDefinitions } from \"./interfaces\";\n import { initializeAssets } from \"./assets-runtime\";\n import { handlers, patchHandlers, agentRegistry, z, initialize, register, registerIntegration } from \"@botpress/runtime/runtime\";\n import { AgentConfig } from \"./config\";\n import { Conversations } from \"./conversations\";\n import { Knowledge } from \"./knowledge\";\n import { Triggers } from \"./triggers\";\n import { Workflows } from \"./workflows\";\n import { Actions } from \"./actions\";\n import { Tables } from \"./tables\";\n import { Interfaces } from \"../../interfaces\";\n\n export function setupAdkRuntime(bot: bp.Bot) {\n // Initialize global error handlers for the runtime\n\n initialize({ config: AgentConfig })\n\n register(...Object.values(Conversations));\n register(...Object.values(Workflows));\n register(...Object.values(Triggers));\n register(...Object.values(Actions));\n register(...Object.values(Tables));\n register(...Object.values(Knowledge));\n\n for (const [alias, { definition }] of Object.entries(IntegrationDefinitions)) {\n registerIntegration({ alias, definition });\n }\n\n // Initialize the global agent registry\n agentRegistry.initialize({\n integrations: Object.entries(IntegrationDefinitions).map(([alias, def]) => ({ ...def, alias })),\n interfaces: Object.entries(InterfaceDefinitions).map(([alias, def]) => ({ ...def, alias })),\n interfacesMapping: Interfaces as Record<string, any>\n });\n\n // Patch bot handlers to add runtime context\n patchHandlers(bot);\n\n // Initialize assets system\n initializeAssets();\n\n // Setup conversation, trigger, and workflow handlers\n handlers.conversation.setup(bot);\n handlers.event.setup(bot);\n handlers.trigger.setup(bot);\n handlers.workflow.setup(bot);\n }\n `\n\n await createFile(path.join(this.outputPath, 'src', 'adk-runtime.ts'), await formatCode(content))\n }\n\n async copyAssetsRuntime(): Promise<void> {\n const assetsRuntimePath = path.join(this.projectPath, '.adk', 'assets-runtime.ts')\n if (existsSync(assetsRuntimePath)) {\n const content = await fs.readFile(assetsRuntimePath, 'utf-8')\n await createFile(path.join(this.outputPath, 'src', 'assets-runtime.ts'), await formatCode(content))\n }\n }\n}\n\nexport async function generateBotProject(options: BotGeneratorOptions): Promise<void> {\n const generator = new BotGenerator(options)\n await generator.generate()\n await generator.generateAdkRuntime()\n await generator.copyAssetsRuntime()\n\n // Handle devId/botId management\n const devIdManager = new DevIdManager(\n options.projectPath,\n options.outputPath || path.join(options.projectPath, '.adk', 'bot')\n )\n\n // Restore any saved devId/botId from agent.json to project cache\n await devIdManager.restoreDevId()\n\n // Sync integrations\n const integrationSync = new IntegrationSync(\n options.projectPath,\n options.outputPath || path.join(options.projectPath, '.adk', 'bot')\n )\n const integrationSyncResult = await integrationSync.syncIntegrations()\n\n if (integrationSyncResult.errors.length > 0) {\n console.warn(`⚠️ Some integrations failed to sync:`)\n integrationSyncResult.errors.forEach(({ alias, error }) => {\n console.warn(` - ${alias}: ${error}`)\n })\n }\n\n // Sync interfaces\n const interfaceSync = new InterfaceSync(\n options.projectPath,\n options.outputPath || path.join(options.projectPath, '.adk', 'bot')\n )\n const interfaceSyncResult = await interfaceSync.syncInterfaces()\n\n if (interfaceSyncResult.errors.length > 0) {\n console.warn(`⚠️ Some interfaces failed to sync:`)\n interfaceSyncResult.errors.forEach(({ alias, error }) => {\n console.warn(` - ${alias}: ${error}`)\n })\n }\n}\n",
51
51
  "import { Integration, Interface } from '@botpress/client'\nimport { transforms, ZodType } from '@botpress/sdk'\nimport crypto from 'crypto'\nimport path from 'path'\n\nimport { camelCase, pascalCase, snakeCase } from '../utils/strings.js'\nimport { ADK_VERSION, formatCode, relative, toMultilineComment } from './utils.js'\n\nexport const sameMajorVersion = (a: string, b: string): boolean => {\n const majorA = a.split('.')[0]\n const majorB = b.split('.')[0]\n return majorA === majorB\n}\n\nconst getIntegrationInterface = (\n integration: Integration,\n int: Interface\n): Integration['interfaces']['string'] | undefined => {\n return Object.values(integration.interfaces || {}).find(\n (x) => x.name === int.name && sameMajorVersion(x.version, int.version)\n )\n}\n\nconst getInterfaceHash = (int: Interface, integrations: Integration[]): string => {\n const versions = integrations\n .filter((x) => !!getIntegrationInterface(x, int))\n .map((x) => `${x.id}|${x.version}|${x.updatedAt}`)\n .sort()\n .join('|')\n\n return crypto.createHash('sha256').update(`${int.id}|${int.version}|${int.updatedAt}|${versions}`).digest('hex')\n}\n\nconst getInterfaceNames = (int: Interface) => ({\n name: camelCase(int.name),\n typings: {\n index: `Interface_All_${pascalCase(int.name)}`,\n actions: `Interface_Actions_${pascalCase(int.name)}`,\n },\n paths: {\n index: path.join(snakeCase(int.name), `index.ts`),\n actions: path.join(snakeCase(int.name), `actions.ts`),\n },\n})\n\nexport async function generateInterfaceTypes(\n int: Interface,\n integrations: Integration[]\n): Promise<{\n names: ReturnType<typeof getInterfaceNames>\n files: Record<string, string>\n}> {\n const names = getInterfaceNames(int)\n const hash = getInterfaceHash(int, integrations)\n\n const implementors = integrations\n .filter((x) => !!getIntegrationInterface(x, int))\n .sort((a, b) => a.name.localeCompare(b.name))\n\n const rel = (to: string): string => {\n const from = names.paths.index\n return relative(from, to).replace(/\\.ts$/i, '')\n }\n\n let tIndex = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // ADK Version: ${ADK_VERSION}\n // Interface: ${int.name}\n // Integrations: ${implementors.map((x) => x.name).join(', ')}\n // Version: ${int.version}\n // File: ${names.paths.index}\n // Hash: ${hash}\n // Updated at: ${int.updatedAt}\n ////////////////////////////////////////////////////////\n\n import { ${names.typings.actions} } from \"${rel(names.paths.actions)}\";\n\n export * from \"${rel(names.paths.actions)}\";\n\n export type ${names.typings.index} = {\n actions: ${names.typings.actions};\n };\n\n export const ${names.typings.index} = {\n actions: ${names.typings.actions},\n }\n `\n\n let iActions = ``\n let cActions = new Set<string>()\n\n for (const integration of implementors) {\n iActions += `\n // Integration: ${integration.name} (${integration.version})\n // Updated at: ${integration.updatedAt}\n \"${integration.name}\": {`\n\n for (const [name, action] of Object.entries(int.actions)) {\n const integrationInt = getIntegrationInterface(integration, int)\n const mapping = integrationInt?.actions[name]?.name\n\n if (!mapping) {\n continue\n }\n\n const entities = Object.entries(integrationInt.entities).reduce(\n (acc, [entityName, value]) => {\n const entity = integration.entities[value.name]\n\n if (entity) {\n acc[entityName] = transforms\n .fromJSONSchema(entity.schema)\n .title(entity.title || entityName)\n .describe(entity.description || 'No description')\n }\n return acc\n },\n {} as Record<string, ZodType>\n )\n\n const input = transforms.fromJSONSchema(action.input.schema).dereference(entities).toTypescriptType()\n\n const output = transforms.fromJSONSchema(action.output.schema).dereference(entities).toTypescriptType()\n\n cActions.add(`\"${integration.name}:${name}\": \"${integration.name}:${mapping}\"`)\n\n iActions += `\n ${toMultilineComment(`Title: ${action.title || name}\\nDescription: ${action.description || 'No description'}`)}\n \"${name}\": {\n input: ${input};\n output: ${output};\n },\\n`\n }\n\n iActions += `};`\n }\n\n const tActions = `\n ////////////////////////////////////////////////////////\n // DO NOT EDIT THIS FILE DIRECTLY\n // This file is auto-generated from the Botpress ADK\n // ADK Version: ${ADK_VERSION}\n // Interface: ${int.name}\n // Integrations: ${implementors.map((x) => x.name).join(', ')}\n // Version: ${int.version}\n // File: ${names.paths.index}\n // Hash: ${hash}\n // Updated at: ${int.updatedAt}\n ////////////////////////////////////////////////////////\n\n export type ${names.typings.actions} = {\n ${iActions}\n };\n\n export const ${names.typings.actions} = {\n ${Array.from(cActions).join(',\\n ')}\n };\n \n `\n\n return {\n names,\n files: {\n [names.paths.index]: await formatCode(tIndex),\n [names.paths.actions]: await formatCode(tActions),\n },\n }\n}\n",
52
52
  "import { z } from '@botpress/sdk'\nimport { AgentProject } from '../agent-project/agent-project.js'\nimport { ADK_VERSION, formatCode } from './utils.js'\nimport { createFile } from '../utils/fs.js'\nimport path from 'path'\n\nexport interface TableTypeInfo {\n name: string\n columns: Record<string, { type: string; computed?: boolean; searchable?: boolean }>\n}\n\nexport async function generateTableTypes(project: AgentProject): Promise<void> {\n const tables: TableTypeInfo[] = []\n\n // Load each table file to get the actual column definitions\n for (const tableRef of project.tables) {\n try {\n const tablePath = path.join(project.path, tableRef.path)\n // Bust module cache to ensure fresh table on type generation\n const tableModule = await import(`${tablePath}?t=${Date.now()}`)\n const tableInstance = tableModule.default || tableModule[tableRef.export]\n\n if (tableInstance && tableInstance.columns) {\n const columns: Record<string, { type: string; computed?: boolean; searchable?: boolean }> = {}\n\n for (const [colName, colDef] of Object.entries(tableInstance.columns)) {\n let schema: z.ZodTypeAny\n let computed = false\n let searchable = false\n\n if (typeof colDef === 'object' && colDef !== null && 'schema' in colDef) {\n // Long form\n schema = (colDef as any).schema\n computed = (colDef as any).computed || false\n searchable = (colDef as any).searchable || false\n } else {\n // Short form\n schema = colDef as z.ZodTypeAny\n }\n\n // Convert Zod schema to TypeScript type\n const tsType = schema.toTypescriptType ? schema.toTypescriptType() : 'any' // Fallback if toTypescriptType is not available\n\n columns[colName] = { type: tsType, computed, searchable }\n }\n\n tables.push({\n name: tableRef.definition.name,\n columns,\n })\n }\n } catch (error) {\n console.warn(`Failed to load table ${tableRef.definition.name}:`, error)\n }\n }\n\n // Generate the type definitions\n let content = `\n////////////////////////////////////////////////////////\n// DO NOT EDIT THIS FILE DIRECTLY\n// This file is auto-generated from the Botpress ADK\n// ADK Version: ${ADK_VERSION}\n// Generated at: ${new Date().toISOString()}\n////////////////////////////////////////////////////////\n\ndeclare module \"@botpress/runtime/_types/tables\" {\n export type TableDefinitions = {\n`\n\n if (tables.length === 0) {\n content += ' [key: string]: {\\n'\n content += ' Input: any;\\n'\n content += ' Output: {\\n'\n content += ' id: number;\\n'\n content += ' createdAt: string;\\n'\n content += ' updatedAt: string;\\n'\n content += ' } & any;\\n'\n content += ' };\\n'\n } else {\n for (const table of tables) {\n // Generate the input type without computed columns\n const inputColumns = Object.entries(table.columns)\n .filter(([_, col]) => !col.computed)\n .map(([name, col]) => ` ${name}: ${col.type};`)\n .join('\\n')\n\n // Generate the output type with all columns plus system fields\n const outputColumns = [\n ' id: number;',\n ' createdAt: string;',\n ' updatedAt: string;',\n ...Object.entries(table.columns).map(([name, col]) => ` ${name}: ${col.type};`),\n ].join('\\n')\n\n content += ` // Table: ${table.name}\\n`\n content += ` ${table.name}: {\\n`\n content += ` Input: {\\n${inputColumns}\\n };\\n`\n content += ` Output: {\\n${outputColumns}\\n };\\n`\n content += ` };\\n`\n }\n }\n\n content += ` };\n}\n`\n\n // Write to table-types.d.ts in the .adk folder\n const tableTypesPath = path.join(project.path, '.adk', 'table-types.d.ts')\n await createFile(tableTypesPath, await formatCode(content))\n}\n",
53
53
  "import { AgentProject } from '../agent-project/agent-project.js'\nimport { ADK_VERSION, formatCode } from './utils.js'\nimport { createFile } from '../utils/fs.js'\nimport path from 'path'\n\nexport async function generateTriggerTypes(project: AgentProject): Promise<void> {\n // Get trigger event subscriptions from definitions\n const triggerEvents: Record<string, string[]> = {}\n\n for (const trigger of project.triggers) {\n // The trigger definition should already contain the events array\n triggerEvents[trigger.definition.name] = trigger.definition.events || []\n }\n\n // Generate Triggers type that maps trigger names to their properties\n const triggersType = Object.entries(triggerEvents)\n .map(([triggerName, events]) => {\n let eventType = 'never'\n if (events.length > 0) {\n eventType = events.map((event) => `Event<\"${event}\">`).join(' | ')\n }\n return ` \"${triggerName}\": {\n events: [${events.map((e) => `\"${e}\"`).join(', ')}];\n event: ${eventType};\n };`\n })\n .join('\\n')\n\n const content = `\n////////////////////////////////////////////////////////\n// DO NOT EDIT THIS FILE DIRECTLY\n// This file is auto-generated from the Botpress ADK\n// ADK Version: ${ADK_VERSION}\n// Generated at: ${new Date().toISOString()}\n////////////////////////////////////////////////////////\n\ntype SDKEvent = import(\"@botpress/client\").Event;\ntype Events = import(\"@botpress/runtime/_types/events\").Events;\n\ntype Event<TName extends keyof Events> = Omit<SDKEvent, \"payload\" | \"type\"> & {\n type: TName;\n payload: Events[TName];\n};\n\ndeclare module \"@botpress/runtime/_types/triggers\" {\n // Map of trigger names to their properties\n export type Triggers = {\n${triggersType}\n };\n}\n`\n\n // Write to trigger-types.d.ts in the .adk folder\n const triggerTypesPath = path.join(project.path, '.adk', 'trigger-types.d.ts')\n await createFile(triggerTypesPath, await formatCode(content))\n}\n",
@@ -62,6 +62,6 @@
62
62
  "import { watch, readdirSync } from 'fs'\nimport { EventEmitter } from 'events'\nimport { join, relative } from 'path'\nimport { existsSync } from 'fs'\n\nexport type WatchChangeType = 'added' | 'modified' | 'deleted'\n\nexport interface FileChange {\n path: string\n type: WatchChangeType\n}\n\nexport interface FileChangeEvent {\n changes: FileChange[]\n timestamp: number\n}\n\nexport interface FileWatcherOptions {\n projectPath: string\n debounceMs?: number\n}\n\n/**\n * File watcher for ADK agent projects\n *\n * Watches the following patterns:\n * - src/**\\/*\n * - dependencies.json\n * - package.json\n * - agent.json\n * - agent.config.ts\n */\nexport class FileWatcher extends EventEmitter {\n private projectPath: string\n private watchers: Map<string, ReturnType<typeof watch>> = new Map()\n private fileStates: Map<string, number> = new Map()\n private debounceMs: number\n private debounceTimer: NodeJS.Timeout | null = null\n private pendingChanges: Map<string, FileChange> = new Map()\n\n constructor(options: FileWatcherOptions) {\n super()\n this.projectPath = options.projectPath\n this.debounceMs = options.debounceMs ?? 100\n }\n\n /**\n * Start watching files\n */\n start(): void {\n // Watch individual files at project root\n const rootFiles = ['dependencies.json', 'package.json', 'agent.json', 'agent.config.ts']\n\n for (const file of rootFiles) {\n const filePath = join(this.projectPath, file)\n if (existsSync(filePath)) {\n this.watchFile(filePath)\n }\n }\n\n // Watch src directory recursively\n const srcPath = join(this.projectPath, 'src')\n if (existsSync(srcPath)) {\n // Initialize state for all existing files BEFORE setting up watchers\n this.initializeDirectoryState(srcPath)\n // Now set up the watcher\n this.watchDirectory(srcPath)\n }\n }\n\n /**\n * Initialize state for all files in a directory (recursive)\n */\n private initializeDirectoryState(dirPath: string): void {\n try {\n const entries = readdirSync(dirPath, { withFileTypes: true })\n\n for (const entry of entries) {\n const fullPath = join(dirPath, entry.name)\n if (entry.isDirectory()) {\n this.initializeDirectoryState(fullPath)\n } else if (entry.isFile()) {\n this.updateFileState(fullPath)\n }\n }\n } catch (error) {\n // Ignore errors during initialization\n }\n }\n\n /**\n * Watch a single file\n */\n private watchFile(filePath: string): void {\n if (this.watchers.has(filePath)) {\n return\n }\n\n try {\n // Initialize file state BEFORE setting up watcher to avoid triggering events\n this.updateFileState(filePath)\n\n const watcher = watch(filePath, { persistent: true }, () => {\n this.handleFileChange(filePath)\n })\n\n this.watchers.set(filePath, watcher)\n } catch (error) {\n console.warn(`Failed to watch file ${filePath}:`, error)\n }\n }\n\n /**\n * Watch a directory recursively\n */\n private watchDirectory(dirPath: string): void {\n if (this.watchers.has(dirPath)) {\n return\n }\n\n try {\n const watcher = watch(dirPath, { recursive: true, persistent: true }, (_eventType, filename) => {\n if (filename) {\n const fullPath = join(dirPath, filename)\n this.handleFileChange(fullPath)\n }\n })\n\n this.watchers.set(dirPath, watcher)\n } catch (error) {\n console.warn(`Failed to watch directory ${dirPath}:`, error)\n }\n }\n\n /**\n * Handle file change events - accumulates changes for batch emission\n */\n private handleFileChange(filePath: string): void {\n const fileExists = existsSync(filePath)\n const previousState = this.fileStates.get(filePath)\n\n let changeType: WatchChangeType\n\n if (!fileExists && previousState !== undefined) {\n // File was deleted\n changeType = 'deleted'\n this.fileStates.delete(filePath)\n } else if (fileExists && previousState === undefined) {\n // File was added\n changeType = 'added'\n this.updateFileState(filePath)\n } else if (fileExists) {\n // File was modified\n changeType = 'modified'\n this.updateFileState(filePath)\n } else {\n // Unknown state, skip\n return\n }\n\n const relativePath = relative(this.projectPath, filePath)\n\n // Add to pending changes (overwrites previous change for same file)\n this.pendingChanges.set(relativePath, {\n path: relativePath,\n type: changeType,\n })\n\n // Reset debounce timer\n if (this.debounceTimer) {\n clearTimeout(this.debounceTimer)\n }\n\n this.debounceTimer = setTimeout(() => {\n this.emitPendingChanges()\n }, this.debounceMs)\n }\n\n /**\n * Emit all pending changes as a single event\n */\n private emitPendingChanges(): void {\n if (this.pendingChanges.size === 0) {\n return\n }\n\n const changes = Array.from(this.pendingChanges.values())\n this.pendingChanges.clear()\n\n const event: FileChangeEvent = {\n changes,\n timestamp: Date.now(),\n }\n\n this.emit('change', event)\n }\n\n /**\n * Update internal file state tracking\n */\n private updateFileState(filePath: string): void {\n if (existsSync(filePath)) {\n this.fileStates.set(filePath, Date.now())\n }\n }\n\n /**\n * Stop watching all files\n */\n stop(): void {\n // Clear debounce timer\n if (this.debounceTimer) {\n clearTimeout(this.debounceTimer)\n this.debounceTimer = null\n }\n\n // Close all watchers\n for (const watcher of this.watchers.values()) {\n watcher.close()\n }\n this.watchers.clear()\n this.fileStates.clear()\n this.pendingChanges.clear()\n }\n\n /**\n * Type-safe event listener\n */\n on(event: 'change', listener: (event: FileChangeEvent) => void): this {\n return super.on(event, listener)\n }\n\n /**\n * Type-safe event emitter\n */\n emit(event: 'change', data: FileChangeEvent): boolean {\n return super.emit(event, data)\n }\n}\n"
63
63
  ],
64
64
  "mappings": "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",
65
- "debugId": "C8730E71EB2EDE5A64756E2164756E21",
65
+ "debugId": "56B1DB5AE0C7FBE464756E2164756E21",
66
66
  "names": []
67
67
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botpress/adk",
3
- "version": "1.6.8",
3
+ "version": "1.6.9",
4
4
  "description": "Core ADK library for building AI agents on Botpress",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -47,7 +47,7 @@
47
47
  "@botpress/cli": "^4.20",
48
48
  "@botpress/client": "^1.27.0",
49
49
  "@botpress/cognitive": "^0.2.0",
50
- "@botpress/runtime": "^1.6.8",
50
+ "@botpress/runtime": "^1.6.9",
51
51
  "@botpress/sdk": "^4.17.3",
52
52
  "@bpinternal/yargs-extra": "^0.0.21",
53
53
  "@parcel/watcher": "^2.5.1",