@amaster.ai/runtime-cli 1.1.7 → 1.1.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/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/config.ts","../src/cli.ts","../src/commands/auth.ts","../src/commands/entity.ts","../src/commands/bpm.ts","../src/commands/workflow.ts","../src/commands/s3.ts","../src/commands/openclaw.ts"],"names":["ora","chalk","getAccessToken","existsSync","join","homedir","readFileSync","writeFileSync","rmSync","createClient"],"mappings":"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","file":"cli.js","sourcesContent":["import { existsSync, readFileSync, writeFileSync, rmSync } from \"fs\";\nimport { join } from \"path\";\nimport { homedir } from \"os\";\n\nconst AMASTER_CONFIG_DIR = join(homedir(), \".amaster\");\nconst CONFIG_FILE = join(AMASTER_CONFIG_DIR, \"config.json\");\n\nexport interface AppConfig {\n baseURL: string;\n ossEndpoint?: string;\n initializedAt: string;\n}\n\nexport interface AuthSession {\n accessToken: string;\n refreshToken?: string;\n expiresAt?: string;\n user?: {\n uid: string;\n email: string;\n name?: string;\n };\n loggedInAt: string;\n}\n\nexport interface RuntimeConfig {\n apps: Record<string, AppConfig>;\n currentApp?: string;\n}\n\nexport function getConfig(): RuntimeConfig {\n if (!existsSync(CONFIG_FILE)) {\n return { apps: {} };\n }\n try {\n return JSON.parse(readFileSync(CONFIG_FILE, \"utf-8\")) as RuntimeConfig;\n } catch {\n return { apps: {} };\n }\n}\n\nexport function saveConfig(config: RuntimeConfig): void {\n if (!existsSync(AMASTER_CONFIG_DIR)) {\n const fs = require(\"fs\");\n fs.mkdirSync(AMASTER_CONFIG_DIR, { recursive: true });\n }\n writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));\n}\n\nexport function getAppConfig(appCode: string): AppConfig | null {\n const config = getConfig();\n return config.apps[appCode] || null;\n}\n\nexport function addApp(appCode: string, appConfig: AppConfig): void {\n const config = getConfig();\n config.apps[appCode] = appConfig;\n if (!config.currentApp) {\n config.currentApp = appCode;\n }\n saveConfig(config);\n}\n\nexport function removeApp(appCode: string): void {\n const config = getConfig();\n if (config.apps[appCode]) {\n delete config.apps[appCode];\n // Remove auth file\n const authFile = join(AMASTER_CONFIG_DIR, `auth-${appCode}.json`);\n if (existsSync(authFile)) {\n rmSync(authFile, { force: true });\n }\n // Update current app if needed\n if (config.currentApp === appCode) {\n const remainingApps = Object.keys(config.apps);\n config.currentApp = remainingApps.length > 0 ? remainingApps[0] : undefined;\n }\n saveConfig(config);\n }\n}\n\nexport function setCurrentApp(appCode: string): boolean {\n const config = getConfig();\n if (!config.apps[appCode]) {\n return false;\n }\n config.currentApp = appCode;\n saveConfig(config);\n return true;\n}\n\nexport function getCurrentApp(): string | null {\n const config = getConfig();\n return config.currentApp || null;\n}\n\nexport function listApps(): string[] {\n const config = getConfig();\n return Object.keys(config.apps);\n}\n\nexport function getBaseURL(appCode?: string): string | null {\n const code = appCode || getCurrentApp();\n if (!code) return null;\n const appConfig = getAppConfig(code);\n return appConfig?.baseURL || null;\n}\n\nexport function getAuthSession(appCode: string): AuthSession | null {\n const authFile = join(AMASTER_CONFIG_DIR, `auth-${appCode}.json`);\n if (!existsSync(authFile)) {\n return null;\n }\n try {\n const content = readFileSync(authFile, \"utf-8\");\n return JSON.parse(content) as AuthSession;\n } catch {\n return null;\n }\n}\n\nexport function saveAuthSession(appCode: string, session: AuthSession): void {\n if (!existsSync(AMASTER_CONFIG_DIR)) {\n const fs = require(\"fs\");\n fs.mkdirSync(AMASTER_CONFIG_DIR, { recursive: true });\n }\n const authFile = join(AMASTER_CONFIG_DIR, `auth-${appCode}.json`);\n writeFileSync(authFile, JSON.stringify(session, null, 2), { mode: 0o600 });\n}\n\nexport function clearAuthSession(appCode: string): void {\n const authFile = join(AMASTER_CONFIG_DIR, `auth-${appCode}.json`);\n if (existsSync(authFile)) {\n rmSync(authFile, { force: true });\n }\n}\n\nexport function isAuthenticated(appCode: string): boolean {\n const session = getAuthSession(appCode);\n if (!session) return false;\n \n if (session.expiresAt) {\n const expiresAt = new Date(session.expiresAt);\n if (expiresAt < new Date()) {\n return false;\n }\n }\n \n return true;\n}\n\nexport function getAccessToken(appCode: string): string | null {\n const session = getAuthSession(appCode);\n return session?.accessToken || null;\n}\n\nexport function shouldRefreshToken(appCode: string): boolean {\n const session = getAuthSession(appCode);\n if (!session?.expiresAt) return false;\n \n const expiresAt = new Date(session.expiresAt);\n const now = new Date();\n const fiveMinutes = 5 * 60 * 1000;\n \n return expiresAt.getTime() - now.getTime() < fiveMinutes;\n}\n","#!/usr/bin/env node\nimport { Command } from \"commander\";\nimport chalk from \"chalk\";\nimport { createClient, type AmasterClient } from \"@amaster.ai/client\";\nimport { \n getAccessToken, \n getAppConfig,\n shouldRefreshToken,\n isAuthenticated,\n listApps,\n setCurrentApp,\n getCurrentApp\n} from \"./config.js\";\nimport * as auth from \"./commands/auth.js\";\nimport * as entity from \"./commands/entity.js\";\nimport * as bpm from \"./commands/bpm.js\";\nimport * as workflow from \"./commands/workflow.js\";\nimport * as s3 from \"./commands/s3.js\";\nimport * as openclaw from \"./commands/openclaw.js\";\n\nexport function resolveAppCode(optionsApp: string | undefined): string {\n if (optionsApp) {\n return optionsApp;\n }\n \n const defaultApp = getCurrentApp();\n if (defaultApp) {\n return defaultApp;\n }\n \n console.error(chalk.red(\"❌ No app specified.\"));\n console.log(chalk.yellow(\"Use one of:\"));\n console.log(chalk.gray(\" 1. Add --app <app-code> to the command\"));\n console.log(chalk.gray(\" 2. Set a default app: amaster use <app-code>\"));\n process.exit(1);\n}\n\nexport function createAmasterClient(appCode: string): AmasterClient {\n const appConfig = getAppConfig(appCode);\n \n if (!appConfig) {\n console.error(chalk.red(`❌ App not configured: ${appCode}`));\n console.log(chalk.yellow(`Initialize it first: amaster init --app-code ${appCode} --url <url>`));\n process.exit(1);\n }\n\n const token = getAccessToken(appCode);\n\n if (!token) {\n console.error(chalk.red(`❌ Not authenticated for app: ${appCode}`));\n console.log(chalk.yellow(`Login first: amaster login --app ${appCode}`));\n process.exit(1);\n }\n\n if (shouldRefreshToken(appCode)) {\n console.log(chalk.yellow(\"⚠️ Session expiring soon. Please login again.\"));\n }\n\n return createClient({\n baseURL: appConfig.baseURL,\n headers: { \n Authorization: `Bearer ${token}`,\n },\n onUnauthorized: () => {\n console.error(chalk.red(\"\\n❌ Session expired. Please login again.\"));\n console.log(chalk.yellow(`Run: amaster login --app ${appCode}`));\n process.exit(1);\n },\n });\n}\n\nconst program = new Command();\n\nprogram\n .name(\"amaster\")\n .description(\"CLI for Amaster SDK - Multi-app support for OpenClaw\")\n .version(\"1.0.0\");\n\nprogram\n .command(\"apps\")\n .description(\"List all configured apps\")\n .action(() => {\n const apps = listApps();\n const current = getCurrentApp();\n \n console.log(chalk.blue(\"\\n📱 Configured Apps\\n\"));\n \n if (apps.length === 0) {\n console.log(chalk.gray(\" No apps configured\"));\n console.log(chalk.gray(\" Run: amaster init --app-code <code> --url <url>\"));\n } else {\n for (const appCode of apps) {\n const config = getAppConfig(appCode);\n const isAuth = isAuthenticated(appCode);\n const isCurrent = appCode === current;\n \n let prefix = isCurrent ? chalk.green(\"→ \") : \" \";\n console.log(`${prefix}${chalk.bold(appCode)}${isCurrent ? chalk.green(\" (current)\") : \"\"}`);\n console.log(` ${chalk.gray(config?.baseURL || \"No URL\")}`);\n console.log(` ${isAuth ? chalk.green(\"● Authenticated\") : chalk.yellow(\"○ Not authenticated\")}`);\n console.log();\n }\n }\n console.log();\n });\n\nprogram\n .command(\"use <app-code>\")\n .description(\"Set the default app for subsequent commands\")\n .action((appCode: string) => {\n if (setCurrentApp(appCode)) {\n console.log(chalk.green(`✅ Now using app: ${appCode}`));\n } else {\n console.error(chalk.red(`❌ App not found: ${appCode}`));\n process.exit(1);\n }\n });\n\nprogram\n .command(\"init\")\n .description(\"Initialize an app for OpenClaw integration\")\n .requiredOption(\"--app-code <code>\", \"Application code (e.g., fhv94bto1)\")\n .requiredOption(\"--url <url>\", \"Base URL (e.g., https://fhv94bto1.helige.cn)\")\n .option(\"--api-key <key>\", \"API Key for OSS access\")\n .option(\"--oss-endpoint <endpoint>\", \"OSS endpoint\")\n .action(async (options) => {\n await openclaw.initOpenClaw({\n appCode: options.appCode,\n baseURL: options.url,\n apiKey: options.apiKey,\n ossEndpoint: options.ossEndpoint,\n });\n });\n\nprogram\n .command(\"login\")\n .description(\"Authenticate with an app\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-e, --email <email>\", \"Email address\")\n .option(\"-p, --password <password>\", \"Password\")\n .action(async (options) => {\n const appCode = resolveAppCode(options.app);\n await auth.login(appCode, { email: options.email, password: options.password });\n });\n\nprogram\n .command(\"logout\")\n .description(\"Logout from an app\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .action(async (options) => {\n const appCode = resolveAppCode(options.app);\n await auth.logout(appCode);\n });\n\nprogram\n .command(\"whoami\")\n .description(\"Show current user information\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .action(async (options) => {\n const appCode = resolveAppCode(options.app);\n await auth.getMe(() => createAmasterClient(appCode));\n });\n\nconst entityCmd = program\n .command(\"entity\")\n .description(\"Manage entities\");\n\nentityCmd\n .command(\"list <namespace> <entity>\")\n .description(\"List entities\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"--page <page>\", \"Page number\", \"1\")\n .option(\"--page-size <size>\", \"Page size\", \"10\")\n .action(async (namespace: string, entityName: string, options) => {\n const appCode = resolveAppCode(options.app);\n await entity.listEntities(createAmasterClient(appCode), {\n namespace,\n entity: entityName,\n page: parseInt(options.page),\n pageSize: parseInt(options.pageSize),\n });\n });\n\nentityCmd\n .command(\"get <namespace> <entity> <id>\")\n .description(\"Get entity by ID\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .action(async (namespace: string, entityName: string, id: string, options) => {\n const appCode = resolveAppCode(options.app);\n await entity.getEntity(createAmasterClient(appCode), { namespace, entity: entityName, id });\n });\n\nentityCmd\n .command(\"create <namespace> <entity>\")\n .description(\"Create new entity\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-d, --data <json>\", \"Entity data as JSON\")\n .action(async (namespace: string, entityName: string, options) => {\n const appCode = resolveAppCode(options.app);\n await entity.createEntity(createAmasterClient(appCode), { \n namespace, \n entity: entityName, \n data: options.data \n });\n });\n\nentityCmd\n .command(\"update <namespace> <entity> <id>\")\n .description(\"Update entity\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-d, --data <json>\", \"Entity data as JSON\")\n .action(async (namespace: string, entityName: string, id: string, options) => {\n const appCode = resolveAppCode(options.app);\n await entity.updateEntity(createAmasterClient(appCode), { \n namespace, \n entity: entityName, \n id, \n data: options.data \n });\n });\n\nentityCmd\n .command(\"delete <namespace> <entity> <id>\")\n .description(\"Delete entity\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .action(async (namespace: string, entityName: string, id: string, options) => {\n const appCode = resolveAppCode(options.app);\n await entity.deleteEntity(createAmasterClient(appCode), { \n namespace, \n entity: entityName, \n id \n });\n });\n\nconst bpmCmd = program\n .command(\"bpm\")\n .description(\"Manage BPM processes and tasks\");\n\nbpmCmd\n .command(\"processes\")\n .description(\"List process definitions\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .action(async (options) => {\n const appCode = resolveAppCode(options.app);\n await bpm.listProcesses(createAmasterClient(appCode));\n });\n\nbpmCmd\n .command(\"start <key>\")\n .description(\"Start a process instance\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-v, --variables <json>\", \"Process variables as JSON\")\n .action(async (key: string, options) => {\n const appCode = resolveAppCode(options.app);\n await bpm.startProcess(createAmasterClient(appCode), { \n key, \n variables: options.variables \n });\n });\n\nbpmCmd\n .command(\"tasks\")\n .description(\"List tasks\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-a, --assignee <assignee>\", \"Filter by assignee\")\n .action(async (options) => {\n const appCode = resolveAppCode(options.app);\n await bpm.listTasks(createAmasterClient(appCode), { assignee: options.assignee });\n });\n\nbpmCmd\n .command(\"complete <id>\")\n .description(\"Complete a task\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-v, --variables <json>\", \"Task variables as JSON\")\n .action(async (id: string, options) => {\n const appCode = resolveAppCode(options.app);\n await bpm.completeTask(createAmasterClient(appCode), { \n id, \n variables: options.variables \n });\n });\n\nconst workflowCmd = program\n .command(\"workflow\")\n .description(\"Manage workflows\");\n\nworkflowCmd\n .command(\"list\")\n .description(\"List workflows\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .action(async (options) => {\n const appCode = resolveAppCode(options.app);\n await workflow.listWorkflows(createAmasterClient(appCode));\n });\n\nworkflowCmd\n .command(\"execute <id>\")\n .description(\"Execute a workflow\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-i, --input <json>\", \"Workflow input as JSON\")\n .action(async (id: string, options) => {\n const appCode = resolveAppCode(options.app);\n await workflow.executeWorkflow(createAmasterClient(appCode), {\n id,\n input: options.input,\n });\n });\n\nconst s3Cmd = program\n .command(\"s3\")\n .description(\"Manage S3 files\");\n\ns3Cmd\n .command(\"list\")\n .description(\"List files\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-b, --bucket <bucket>\", \"Bucket name\")\n .action(async (options) => {\n const appCode = resolveAppCode(options.app);\n await s3.listFiles(createAmasterClient(appCode), {\n bucket: options.bucket,\n });\n });\n\ns3Cmd\n .command(\"upload <file>\")\n .description(\"Upload a file\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-b, --bucket <bucket>\", \"Bucket name\")\n .option(\"-k, --key <key>\", \"Object key\")\n .action(async (file: string, options) => {\n const appCode = resolveAppCode(options.app);\n await s3.uploadFile(createAmasterClient(appCode), {\n file,\n bucket: options.bucket,\n key: options.key,\n });\n });\n\n// Only parse when run directly (not when imported for testing)\nconst isMainModule = import.meta.url === new URL(process.argv[1] || '', import.meta.url).href ||\n import.meta.url.endsWith(process.argv[1] || '') ||\n process.argv[1]?.includes('cli.js') ||\n false;\n\nif (isMainModule) {\n program.parse();\n}\n","import chalk from \"chalk\";\nimport ora from \"ora\";\nimport { createClient } from \"@amaster.ai/client\";\nimport { \n getAppConfig, \n saveAuthSession, \n clearAuthSession,\n} from \"../config.js\";\nimport type { AmasterClient } from \"@amaster.ai/client\";\n\nexport async function login(\n appCode: string, \n options: { email?: string; password?: string }\n) {\n const spinner = ora(`Logging in to ${appCode}...`).start();\n\n try {\n const appConfig = getAppConfig(appCode);\n if (!appConfig) {\n spinner.fail(`App not configured: ${appCode}`);\n console.error(chalk.red(`\\n❌ App not found: ${appCode}`));\n console.log(chalk.yellow(`Initialize it first: amaster init --app-code ${appCode} --url <url>`));\n process.exit(1);\n }\n\n let email = options.email;\n let password = options.password;\n\n if (!email || !password) {\n const { default: inquirer } = await import(\"inquirer\");\n const answers = await inquirer.prompt([\n {\n type: \"input\",\n name: \"email\",\n message: \"Email:\",\n when: !email,\n },\n {\n type: \"password\",\n name: \"password\",\n message: \"Password:\",\n when: !password,\n },\n ]);\n email = email || answers.email;\n password = password || answers.password;\n }\n\n const client = createClient({ baseURL: appConfig.baseURL });\n\n const result = await client.auth.login({ email: email!, password: password! });\n\n if (result.error) {\n spinner.fail(\"Login failed\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n const loginData = result.data;\n if (!loginData?.accessToken) {\n spinner.fail(\"Login failed: No access token received\");\n process.exit(1);\n }\n\n saveAuthSession(appCode, {\n accessToken: loginData.accessToken,\n refreshToken: loginData.refreshToken,\n expiresAt: loginData.expiresAt,\n user: loginData.user,\n loggedInAt: new Date().toISOString(),\n });\n\n spinner.succeed(`Login successful: ${appCode}`);\n console.log(chalk.green(`\\nWelcome, ${loginData.user?.name || loginData.user?.email || email}!`));\n console.log(chalk.gray(`App: ${appCode}`));\n console.log(chalk.gray(`URL: ${appConfig.baseURL}`));\n \n if (loginData.expiresAt) {\n const expires = new Date(loginData.expiresAt);\n console.log(chalk.gray(`Session expires: ${expires.toLocaleString()}`));\n }\n } catch (error) {\n spinner.fail(\"Login failed\");\n throw error;\n }\n}\n\nexport async function logout(appCode: string) {\n const spinner = ora(`Logging out from ${appCode}...`).start();\n\n try {\n const appConfig = getAppConfig(appCode);\n if (appConfig) {\n const { getAccessToken } = await import(\"../config.js\");\n const token = getAccessToken(appCode);\n if (token) {\n const client = createClient({ \n baseURL: appConfig.baseURL,\n headers: { Authorization: `Bearer ${token}` }\n });\n await client.auth.logout().catch(() => {});\n }\n }\n \n clearAuthSession(appCode);\n spinner.succeed(`Logout successful: ${appCode}`);\n } catch (error) {\n spinner.fail(\"Logout failed\");\n throw error;\n }\n}\n\nexport async function getMe(getClient: () => AmasterClient) {\n const spinner = ora(\"Fetching user info...\").start();\n\n try {\n const client = getClient();\n \n const result = await client.auth.getMe();\n\n if (result.error) {\n spinner.fail(\"Failed to fetch user info\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"User info retrieved\");\n\n const user = result.data;\n console.log(chalk.blue(\"\\n👤 User Profile\\n\"));\n console.log(` ${chalk.bold(\"UID:\")} ${user?.uid}`);\n console.log(` ${chalk.bold(\"Email:\")} ${user?.email}`);\n console.log(` ${chalk.bold(\"Name:\")} ${user?.name || \"N/A\"}`);\n console.log(` ${chalk.bold(\"Status:\")} ${user?.status || \"N/A\"}`);\n } catch (error) {\n spinner.fail(\"Failed to fetch user info\");\n throw error;\n }\n}\n","import chalk from \"chalk\";\nimport ora from \"ora\";\nimport type { AmasterClient } from \"@amaster.ai/client\";\n\nexport async function listEntities(\n client: AmasterClient,\n options: { namespace: string; entity: string; page?: number; pageSize?: number }\n) {\n const spinner = ora(`Fetching ${options.entity}...`).start();\n\n try {\n const result = await client.entity.list(options.namespace, options.entity, {\n page: options.page || 1,\n pageSize: options.pageSize || 10,\n });\n\n if (result.error) {\n spinner.fail(\"Failed to fetch entities\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(`Found ${result.data?.total || 0} ${options.entity}`);\n\n const items = result.data?.list || [];\n console.log(chalk.blue(`\\n📦 ${options.entity} in ${options.namespace}\\n`));\n\n for (const item of items.slice(0, 10)) {\n const id = item.id || item.uid || item._id;\n console.log(` ${chalk.green(\"•\")} ${chalk.bold(id)}`);\n const entries = Object.entries(item).slice(0, 5);\n for (const [key, value] of entries) {\n if (key !== \"id\" && key !== \"uid\" && key !== \"_id\") {\n const displayValue = typeof value === \"object\" ? JSON.stringify(value).slice(0, 50) : String(value).slice(0, 50);\n console.log(` ${chalk.gray(key + \":\")} ${displayValue}`);\n }\n }\n if (Object.keys(item).length > 6) {\n console.log(` ${chalk.gray(\"...\")}`);\n }\n console.log();\n }\n\n if (items.length > 10) {\n console.log(chalk.gray(` ... and ${items.length - 10} more`));\n }\n } catch (error) {\n spinner.fail(\"Failed to fetch entities\");\n throw error;\n }\n}\n\nexport async function getEntity(client: AmasterClient, options: { namespace: string; entity: string; id: string }) {\n const spinner = ora(`Fetching ${options.entity}...`).start();\n\n try {\n const result = await client.entity.get(options.namespace, options.entity, options.id);\n\n if (result.error) {\n spinner.fail(\"Failed to fetch entity\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Entity retrieved\");\n\n console.log(chalk.blue(`\\n📄 ${options.entity}\\n`));\n console.log(JSON.stringify(result.data, null, 2));\n } catch (error) {\n spinner.fail(\"Failed to fetch entity\");\n throw error;\n }\n}\n\nexport async function createEntity(\n client: AmasterClient,\n options: { namespace: string; entity: string; data?: string }\n) {\n const spinner = ora(`Creating ${options.entity}...`).start();\n\n try {\n let data: Record<string, unknown> = {};\n\n if (options.data) {\n data = JSON.parse(options.data);\n } else {\n const { default: inquirer } = await import(\"inquirer\");\n const { jsonData } = await inquirer.prompt([\n {\n type: \"editor\",\n name: \"jsonData\",\n message: \"Enter JSON data:\",\n default: \"{}\",\n },\n ]);\n data = JSON.parse(jsonData);\n }\n\n const result = await client.entity.create(options.namespace, options.entity, data);\n\n if (result.error) {\n spinner.fail(\"Failed to create entity\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Entity created\");\n console.log(chalk.green(\"\\nCreated entity:\"));\n console.log(JSON.stringify(result.data, null, 2));\n } catch (error) {\n spinner.fail(\"Failed to create entity\");\n throw error;\n }\n}\n\nexport async function updateEntity(\n client: AmasterClient,\n options: { namespace: string; entity: string; id: string; data?: string }\n) {\n const spinner = ora(`Updating ${options.entity}...`).start();\n\n try {\n let data: Record<string, unknown> = {};\n\n if (options.data) {\n data = JSON.parse(options.data);\n } else {\n const { default: inquirer } = await import(\"inquirer\");\n const { jsonData } = await inquirer.prompt([\n {\n type: \"editor\",\n name: \"jsonData\",\n message: \"Enter JSON data:\",\n default: \"{}\",\n },\n ]);\n data = JSON.parse(jsonData);\n }\n\n const result = await client.entity.update(options.namespace, options.entity, options.id, data);\n\n if (result.error) {\n spinner.fail(\"Failed to update entity\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Entity updated\");\n console.log(chalk.green(\"\\nUpdated entity:\"));\n console.log(JSON.stringify(result.data, null, 2));\n } catch (error) {\n spinner.fail(\"Failed to update entity\");\n throw error;\n }\n}\n\nexport async function deleteEntity(client: AmasterClient, options: { namespace: string; entity: string; id: string }) {\n const spinner = ora(`Deleting ${options.entity}...`).start();\n\n try {\n const result = await client.entity.delete(options.namespace, options.entity, options.id);\n\n if (result.error) {\n spinner.fail(\"Failed to delete entity\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Entity deleted\");\n console.log(chalk.green(`\\nDeleted ${options.entity} with ID: ${options.id}`));\n } catch (error) {\n spinner.fail(\"Failed to delete entity\");\n throw error;\n }\n}\n\nexport async function listEntityTypes(client: AmasterClient, options: { namespace: string }) {\n const spinner = ora(\"Fetching entity types...\").start();\n\n try {\n const result = await client.entity.getEntityTypes(options.namespace);\n\n if (result.error) {\n spinner.fail(\"Failed to fetch entity types\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(`Found ${result.data?.length || 0} entity types`);\n\n const types = result.data || [];\n console.log(chalk.blue(`\\n📋 Entity Types in ${options.namespace}\\n`));\n\n for (const type of types) {\n console.log(` ${chalk.green(\"•\")} ${chalk.bold(type.code)}`);\n console.log(` ${chalk.gray(\"Name:\")} ${type.name || \"N/A\"}`);\n console.log(` ${chalk.gray(\"Description:\")} ${type.description || \"N/A\"}`);\n console.log();\n }\n } catch (error) {\n spinner.fail(\"Failed to fetch entity types\");\n throw error;\n }\n}\n","import chalk from \"chalk\";\nimport ora from \"ora\";\nimport type { AmasterClient } from \"@amaster.ai/client\";\n\nexport async function listProcesses(client: AmasterClient) {\n const spinner = ora(\"Fetching process definitions...\").start();\n\n try {\n const result = await client.bpm.getProcessDefinitions();\n\n if (result.error) {\n spinner.fail(\"Failed to fetch processes\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(`Found ${result.data?.length || 0} process definitions`);\n\n const processes = result.data || [];\n console.log(chalk.blue(\"\\n📊 Process Definitions\\n\"));\n\n for (const proc of processes) {\n console.log(` ${chalk.green(\"•\")} ${chalk.bold(proc.key)}`);\n console.log(` ${chalk.gray(\"Name:\")} ${proc.name || \"N/A\"}`);\n console.log(` ${chalk.gray(\"Version:\")} ${proc.version || \"N/A\"}`);\n console.log();\n }\n } catch (error) {\n spinner.fail(\"Failed to fetch processes\");\n throw error;\n }\n}\n\nexport async function startProcess(\n client: AmasterClient,\n options: { key: string; variables?: string }\n) {\n const spinner = ora(`Starting process: ${options.key}...`).start();\n\n try {\n const variables = options.variables ? JSON.parse(options.variables) : {};\n\n const result = await client.bpm.startProcess({\n processKey: options.key,\n variables,\n });\n\n if (result.error) {\n spinner.fail(\"Failed to start process\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Process started\");\n console.log(chalk.green(\"\\nProcess Instance:\"));\n console.log(` ${chalk.bold(\"ID:\")} ${result.data?.id}`);\n console.log(` ${chalk.bold(\"Definition ID:\")} ${result.data?.definitionId}`);\n console.log(` ${chalk.bold(\"Business Key:\")} ${result.data?.businessKey || \"N/A\"}`);\n console.log(` ${chalk.bold(\"Status:\")} ${result.data?.suspended ? \"Suspended\" : \"Active\"}`);\n } catch (error) {\n spinner.fail(\"Failed to start process\");\n throw error;\n }\n}\n\nexport async function listTasks(client: AmasterClient, options: { assignee?: string }) {\n const spinner = ora(\"Fetching tasks...\").start();\n\n try {\n const params: { assignee?: string } = {};\n if (options.assignee) {\n params.assignee = options.assignee;\n }\n\n const result = await client.bpm.getMyTasks(params);\n\n if (result.error) {\n spinner.fail(\"Failed to fetch tasks\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(`Found ${result.data?.length || 0} tasks`);\n\n const tasks = result.data || [];\n console.log(chalk.blue(\"\\n📝 Tasks\\n\"));\n\n for (const task of tasks) {\n console.log(` ${chalk.green(\"•\")} ${chalk.bold(task.name || task.id)}`);\n console.log(` ${chalk.gray(\"ID:\")} ${task.id}`);\n console.log(` ${chalk.gray(\"Assignee:\")} ${task.assignee || \"Unassigned\"}`);\n console.log(` ${chalk.gray(\"Created:\")} ${task.created || \"N/A\"}`);\n console.log();\n }\n } catch (error) {\n spinner.fail(\"Failed to fetch tasks\");\n throw error;\n }\n}\n\nexport async function completeTask(\n client: AmasterClient,\n options: { id: string; variables?: string }\n) {\n const spinner = ora(`Completing task: ${options.id}...`).start();\n\n try {\n const variables = options.variables ? JSON.parse(options.variables) : {};\n\n const result = await client.bpm.completeTask(options.id, { variables });\n\n if (result.error) {\n spinner.fail(\"Failed to complete task\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Task completed\");\n } catch (error) {\n spinner.fail(\"Failed to complete task\");\n throw error;\n }\n}\n\nexport async function claimTask(client: AmasterClient, options: { id: string; assignee: string }) {\n const spinner = ora(`Claiming task: ${options.id}...`).start();\n\n try {\n const result = await client.bpm.claimTask(options.id, options.assignee);\n\n if (result.error) {\n spinner.fail(\"Failed to claim task\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Task claimed\");\n } catch (error) {\n spinner.fail(\"Failed to claim task\");\n throw error;\n }\n}\n\nexport async function getProcessInstance(client: AmasterClient, options: { id: string }) {\n const spinner = ora(\"Fetching process instance...\").start();\n\n try {\n const result = await client.bpm.getProcessInstance(options.id);\n\n if (result.error) {\n spinner.fail(\"Failed to fetch process instance\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Process instance retrieved\");\n\n console.log(chalk.blue(\"\\n📊 Process Instance\\n\"));\n console.log(JSON.stringify(result.data, null, 2));\n } catch (error) {\n spinner.fail(\"Failed to fetch process instance\");\n throw error;\n }\n}\n\nexport async function listProcessInstances(client: AmasterClient) {\n const spinner = ora(\"Fetching process instances...\").start();\n\n try {\n const result = await client.bpm.getProcessInstances();\n\n if (result.error) {\n spinner.fail(\"Failed to fetch process instances\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(`Found ${result.data?.length || 0} process instances`);\n\n const instances = result.data || [];\n console.log(chalk.blue(\"\\n🔄 Process Instances\\n\"));\n\n for (const instance of instances) {\n console.log(` ${chalk.green(\"•\")} ${chalk.bold(instance.id)}`);\n console.log(` ${chalk.gray(\"Definition:\")} ${instance.definitionId}`);\n console.log(` ${chalk.gray(\"Status:\")} ${instance.ended ? \"Ended\" : instance.suspended ? \"Suspended\" : \"Active\"}`);\n console.log();\n }\n } catch (error) {\n spinner.fail(\"Failed to fetch process instances\");\n throw error;\n }\n}\n","import chalk from \"chalk\";\nimport ora from \"ora\";\nimport type { AmasterClient } from \"@amaster.ai/client\";\n\nexport async function listWorkflows(client: AmasterClient) {\n const spinner = ora(\"Fetching workflows...\").start();\n\n try {\n const result = await client.workflow.listWorkflows();\n\n if (result.error) {\n spinner.fail(\"Failed to fetch workflows\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(`Found ${result.data?.length || 0} workflows`);\n\n const workflows = result.data || [];\n console.log(chalk.blue(\"\\n⚡ Workflows\\n\"));\n\n for (const workflow of workflows) {\n console.log(` ${chalk.green(\"•\")} ${chalk.bold(workflow.code || workflow.id)}`);\n console.log(` ${chalk.gray(\"Name:\")} ${workflow.name || \"N/A\"}`);\n console.log(` ${chalk.gray(\"Description:\")} ${workflow.description || \"N/A\"}`);\n console.log(` ${chalk.gray(\"Status:\")} ${workflow.status || \"N/A\"}`);\n console.log();\n }\n } catch (error) {\n spinner.fail(\"Failed to fetch workflows\");\n throw error;\n }\n}\n\nexport async function executeWorkflow(\n client: AmasterClient,\n options: { id: string; input?: string; version?: string }\n) {\n const spinner = ora(`Executing workflow: ${options.id}...`).start();\n\n try {\n const input = options.input ? JSON.parse(options.input) : {};\n\n const result = await client.workflow.execute(options.id, {\n input,\n version: options.version,\n });\n\n if (result.error) {\n spinner.fail(\"Failed to execute workflow\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Workflow executed\");\n console.log(chalk.green(\"\\nExecution Result:\"));\n console.log(JSON.stringify(result.data, null, 2));\n } catch (error) {\n spinner.fail(\"Failed to execute workflow\");\n throw error;\n }\n}\n\nexport async function getWorkflow(client: AmasterClient, options: { id: string }) {\n const spinner = ora(\"Fetching workflow...\").start();\n\n try {\n const result = await client.workflow.getWorkflow(options.id);\n\n if (result.error) {\n spinner.fail(\"Failed to fetch workflow\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Workflow retrieved\");\n\n console.log(chalk.blue(\"\\n⚡ Workflow\\n\"));\n console.log(JSON.stringify(result.data, null, 2));\n } catch (error) {\n spinner.fail(\"Failed to fetch workflow\");\n throw error;\n }\n}\n\nexport async function listWorkflowExecutions(\n client: AmasterClient,\n options: { workflowId?: string; page?: number; pageSize?: number }\n) {\n const spinner = ora(\"Fetching workflow executions...\").start();\n\n try {\n const result = await client.workflow.listExecutions({\n workflowId: options.workflowId,\n page: options.page || 1,\n pageSize: options.pageSize || 10,\n });\n\n if (result.error) {\n spinner.fail(\"Failed to fetch executions\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(`Found ${result.data?.total || 0} executions`);\n\n const executions = result.data?.list || [];\n console.log(chalk.blue(\"\\n🔄 Workflow Executions\\n\"));\n\n for (const execution of executions) {\n console.log(` ${chalk.green(\"•\")} ${chalk.bold(execution.id)}`);\n console.log(` ${chalk.gray(\"Workflow:\")} ${execution.workflowId}`);\n console.log(` ${chalk.gray(\"Status:\")} ${execution.status || \"N/A\"}`);\n console.log(` ${chalk.gray(\"Started:\")} ${execution.startedAt || \"N/A\"}`);\n console.log();\n }\n } catch (error) {\n spinner.fail(\"Failed to fetch executions\");\n throw error;\n }\n}\n\nexport async function getExecution(client: AmasterClient, options: { id: string }) {\n const spinner = ora(\"Fetching execution...\").start();\n\n try {\n const result = await client.workflow.getExecution(options.id);\n\n if (result.error) {\n spinner.fail(\"Failed to fetch execution\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Execution retrieved\");\n\n console.log(chalk.blue(\"\\n🔄 Execution\\n\"));\n console.log(JSON.stringify(result.data, null, 2));\n } catch (error) {\n spinner.fail(\"Failed to fetch execution\");\n throw error;\n }\n}\n","import chalk from \"chalk\";\nimport ora from \"ora\";\nimport { createReadStream, existsSync } from \"fs\";\nimport { resolve } from \"path\";\nimport type { AmasterClient } from \"@amaster.ai/client\";\n\nexport async function uploadFile(\n client: AmasterClient,\n options: { file: string; key?: string; bucket?: string; public?: boolean }\n) {\n const spinner = ora(\"Uploading file...\").start();\n\n try {\n const filePath = resolve(options.file);\n\n if (!existsSync(filePath)) {\n spinner.fail(`File not found: ${options.file}`);\n process.exit(1);\n }\n\n const result = await client.s3.uploadFile(filePath, {\n key: options.key,\n bucket: options.bucket,\n isPublic: options.public,\n });\n\n if (result.error) {\n spinner.fail(\"Upload failed\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Upload complete\");\n console.log(chalk.green(\"\\nFile uploaded:\"));\n console.log(` ${chalk.bold(\"Key:\")} ${result.data?.key}`);\n console.log(` ${chalk.bold(\"URL:\")} ${result.data?.url || \"N/A\"}`);\n console.log(` ${chalk.bold(\"Bucket:\")} ${result.data?.bucket || options.bucket || \"default\"}`);\n } catch (error) {\n spinner.fail(\"Upload failed\");\n throw error;\n }\n}\n\nexport async function downloadFile(\n client: AmasterClient,\n options: { key: string; output: string; bucket?: string }\n) {\n const spinner = ora(\"Downloading file...\").start();\n\n try {\n const result = await client.s3.downloadFile(options.key, options.output, {\n bucket: options.bucket,\n });\n\n if (result.error) {\n spinner.fail(\"Download failed\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Download complete\");\n console.log(chalk.green(`\\nFile saved to: ${options.output}`));\n } catch (error) {\n spinner.fail(\"Download failed\");\n throw error;\n }\n}\n\nexport async function listFiles(\n client: AmasterClient,\n options: { bucket?: string; prefix?: string; page?: number; pageSize?: number }\n) {\n const spinner = ora(\"Fetching files...\").start();\n\n try {\n const result = await client.s3.listFiles({\n bucket: options.bucket,\n prefix: options.prefix,\n page: options.page || 1,\n pageSize: options.pageSize || 10,\n });\n\n if (result.error) {\n spinner.fail(\"Failed to fetch files\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(`Found ${result.data?.total || 0} files`);\n\n const files = result.data?.list || [];\n console.log(chalk.blue(`\\n📁 Files${options.bucket ? ` in ${options.bucket}` : \"\"}\\n`));\n\n for (const file of files) {\n console.log(` ${chalk.green(\"•\")} ${chalk.bold(file.key)}`);\n console.log(` ${chalk.gray(\"Size:\")} ${formatBytes(file.size || 0)}`);\n console.log(` ${chalk.gray(\"Modified:\")} ${file.lastModified || \"N/A\"}`);\n console.log();\n }\n } catch (error) {\n spinner.fail(\"Failed to fetch files\");\n throw error;\n }\n}\n\nexport async function deleteFile(client: AmasterClient, options: { key: string; bucket?: string }) {\n const spinner = ora(\"Deleting file...\").start();\n\n try {\n const result = await client.s3.deleteFile(options.key, {\n bucket: options.bucket,\n });\n\n if (result.error) {\n spinner.fail(\"Delete failed\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"File deleted\");\n console.log(chalk.green(`\\nDeleted: ${options.key}`));\n } catch (error) {\n spinner.fail(\"Delete failed\");\n throw error;\n }\n}\n\nexport async function getFileUrl(\n client: AmasterClient,\n options: { key: string; bucket?: string; expires?: number }\n) {\n const spinner = ora(\"Generating URL...\").start();\n\n try {\n const result = await client.s3.getFileUrl(options.key, {\n bucket: options.bucket,\n expires: options.expires,\n });\n\n if (result.error) {\n spinner.fail(\"Failed to generate URL\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"URL generated\");\n console.log(chalk.green(\"\\nFile URL:\"));\n console.log(` ${result.data?.url}`);\n if (result.data?.expires) {\n console.log(chalk.gray(` Expires: ${new Date(result.data.expires).toLocaleString()}`));\n }\n } catch (error) {\n spinner.fail(\"Failed to generate URL\");\n throw error;\n }\n}\n\nfunction formatBytes(bytes: number): string {\n if (bytes === 0) return \"0 B\";\n const k = 1024;\n const sizes = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + \" \" + sizes[i];\n}\n","import { existsSync, mkdirSync, readFileSync, writeFileSync, rmSync, readdirSync } from \"fs\";\nimport { join } from \"path\";\nimport { homedir } from \"os\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport yaml from \"yaml\";\nimport { addApp, getAppConfig, listApps } from \"../config.js\";\n\nconst OPENCLAW_CONFIG_DIR = join(homedir(), \".openclaw\");\nconst OPENCLAW_CONFIG_FILE = join(OPENCLAW_CONFIG_DIR, \"config.json\");\nconst OPENCLAW_SKILLS_DIR = join(OPENCLAW_CONFIG_DIR, \"skills\");\nconst DEFAULT_OSS_ENDPOINT = \"https://amaster.oss-cn-hangzhou.aliyuncs.com\";\n\ninterface SkillManifest {\n id: string;\n name: string;\n description: string;\n version: string;\n content?: string;\n}\n\ninterface McpServerConfig {\n command: string;\n args?: string[];\n env?: Record<string, string>;\n}\n\nfunction getOpenClawConfig(): { mcpServers?: Record<string, McpServerConfig> } {\n if (existsSync(OPENCLAW_CONFIG_FILE)) {\n return JSON.parse(readFileSync(OPENCLAW_CONFIG_FILE, \"utf-8\"));\n }\n return {};\n}\n\nfunction saveOpenClawConfig(config: { mcpServers?: Record<string, McpServerConfig> }): void {\n if (!existsSync(OPENCLAW_CONFIG_DIR)) {\n mkdirSync(OPENCLAW_CONFIG_DIR, { recursive: true });\n }\n writeFileSync(OPENCLAW_CONFIG_FILE, JSON.stringify(config, null, 2));\n}\n\nfunction getAppSkillsPath(appCode: string): string {\n return `/openclaw/apps/${appCode}/skills`;\n}\n\nfunction getAppMcpConfigPath(appCode: string): string {\n return `/openclaw/apps/${appCode}/mcp-config.yaml`;\n}\n\nexport async function initOpenClaw(options: {\n appCode: string;\n baseURL: string;\n apiKey?: string;\n ossEndpoint?: string;\n force?: boolean;\n}): Promise<void> {\n const spinner = ora(`Initializing app: ${options.appCode}...`).start();\n\n try {\n // Check if app already exists\n const existingConfig = getAppConfig(options.appCode);\n if (existingConfig && !options.force) {\n spinner.fail(`App already exists: ${options.appCode}`);\n console.log(chalk.yellow(`Use --force to reinitialize`));\n console.log(chalk.gray(`Current URL: ${existingConfig.baseURL}`));\n process.exit(1);\n }\n\n if (!existsSync(OPENCLAW_CONFIG_DIR)) {\n spinner.fail(\"OpenClaw not detected\");\n console.log(chalk.yellow(\"\\n⚠️ Please install OpenClaw first:\"));\n console.log(chalk.gray(\" npm install -g openclaw\"));\n process.exit(1);\n }\n\n // Save app config\n addApp(options.appCode, {\n baseURL: options.baseURL,\n ossEndpoint: options.ossEndpoint || DEFAULT_OSS_ENDPOINT,\n initializedAt: new Date().toISOString(),\n });\n\n spinner.succeed(`App initialized: ${options.appCode}`);\n \n console.log(chalk.blue(\"\\n📋 Configuration:\\n\"));\n console.log(` App Code: ${chalk.green(options.appCode)}`);\n console.log(` Base URL: ${chalk.gray(options.baseURL)}`);\n console.log();\n\n // Download and install skills\n const ossEndpoint = options.ossEndpoint || DEFAULT_OSS_ENDPOINT;\n spinner.start(\"Downloading skills...\");\n \n try {\n const skills = await downloadSkillManifest(ossEndpoint, options.appCode);\n\n if (skills.length === 0) {\n spinner.warn(\"No skills found\");\n } else {\n spinner.text = `Installing ${skills.length} skills...`;\n const appSkillsDir = join(OPENCLAW_SKILLS_DIR, options.appCode);\n\n if (options.force && existsSync(appSkillsDir)) {\n rmSync(appSkillsDir, { recursive: true, force: true });\n }\n\n if (!existsSync(appSkillsDir)) {\n mkdirSync(appSkillsDir, { recursive: true });\n }\n\n for (const skill of skills) {\n spinner.text = `Installing: ${skill.name}...`;\n await downloadSkill(skill, ossEndpoint, options.appCode, appSkillsDir);\n }\n spinner.succeed(`Installed ${skills.length} skills`);\n }\n } catch (error) {\n spinner.warn(\"Skills download failed (optional)\");\n }\n\n // Configure MCP servers\n spinner.start(\"Configuring MCP servers...\");\n try {\n const mcpServers = await downloadMcpConfig(ossEndpoint, options.appCode);\n\n if (Object.keys(mcpServers).length > 0) {\n const openClawConfig = getOpenClawConfig();\n\n if (!openClawConfig.mcpServers) {\n openClawConfig.mcpServers = {};\n }\n\n for (const [name, config] of Object.entries(mcpServers)) {\n openClawConfig.mcpServers[`${options.appCode}-${name}`] = config;\n }\n\n saveOpenClawConfig(openClawConfig);\n spinner.succeed(`Configured ${Object.keys(mcpServers).length} MCP servers`);\n } else {\n spinner.succeed(\"No MCP servers to configure\");\n }\n } catch (error) {\n spinner.warn(\"MCP configuration failed (optional)\");\n }\n\n console.log();\n console.log(chalk.green(\"✅ Initialization complete!\"));\n console.log();\n console.log(`Next step: Login to your app`);\n console.log(chalk.gray(` amaster login --app ${options.appCode}`));\n console.log();\n\n // Show all configured apps\n const apps = listApps();\n if (apps.length > 1) {\n console.log(chalk.blue(\"Configured apps:\"));\n for (const app of apps) {\n const config = getAppConfig(app);\n console.log(` ${chalk.gray(\"•\")} ${app} - ${config?.baseURL}`);\n }\n console.log();\n }\n } catch (error) {\n spinner.fail(\"Initialization failed\");\n throw error;\n }\n}\n\nasync function downloadSkillManifest(ossEndpoint: string, appCode: string): Promise<SkillManifest[]> {\n const manifestUrl = `${ossEndpoint}${getAppSkillsPath(appCode)}/manifest.json`;\n\n try {\n const response = await fetch(manifestUrl);\n if (!response.ok) {\n if (response.status === 404) {\n return [];\n }\n throw new Error(`Failed to download manifest: ${response.statusText}`);\n }\n return (await response.json()) as SkillManifest[];\n } catch (error) {\n if (error instanceof Error && error.message.includes(\"404\")) {\n return [];\n }\n throw error;\n }\n}\n\nasync function downloadSkill(\n skill: SkillManifest, \n ossEndpoint: string, \n appCode: string, \n targetDir: string\n): Promise<void> {\n const skillUrl = `${ossEndpoint}${getAppSkillsPath(appCode)}/${skill.id}.zip`;\n\n try {\n const response = await fetch(skillUrl);\n if (!response.ok) {\n throw new Error(`Failed to download skill ${skill.id}: ${response.statusText}`);\n }\n\n const skillDir = join(targetDir, skill.id);\n if (!existsSync(skillDir)) {\n mkdirSync(skillDir, { recursive: true });\n }\n\n await response.arrayBuffer();\n\n // Create SKILL.md\n const skillContent = skill.content || generateSkillContent(skill, appCode);\n writeFileSync(join(skillDir, \"SKILL.md\"), skillContent);\n\n // Create metadata\n writeFileSync(\n join(skillDir, \".amaster-meta.json\"),\n JSON.stringify(\n {\n id: skill.id,\n name: skill.name,\n version: skill.version,\n appCode,\n installedAt: new Date().toISOString(),\n },\n null,\n 2\n )\n );\n } catch (error) {\n throw new Error(`Failed to download skill ${skill.id}: ${error instanceof Error ? error.message : error}`);\n }\n}\n\nfunction generateSkillContent(skill: SkillManifest, appCode: string): string {\n return `---\nname: ${skill.name}\ndescription: ${skill.description}\nmetadata:\n appCode: ${appCode}\n---\n\n# ${skill.name}\n\n${skill.description}\n\n## Usage\n\nThis skill is configured for application: **${appCode}**\n`;\n}\n\nasync function downloadMcpConfig(\n ossEndpoint: string, \n appCode: string\n): Promise<Record<string, McpServerConfig>> {\n const configUrl = `${ossEndpoint}${getAppMcpConfigPath(appCode)}`;\n\n try {\n const response = await fetch(configUrl);\n if (!response.ok) {\n if (response.status === 404) {\n return {};\n }\n throw new Error(`Failed to download MCP config: ${response.statusText}`);\n }\n const content = await response.text();\n const parsed = yaml.parse(content);\n return parsed.mcpServers || {};\n } catch (error) {\n if (error instanceof Error && error.message.includes(\"404\")) {\n return {};\n }\n throw error;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/config.ts","../src/cli.ts","../src/commands/auth.ts","../src/output.ts","../src/commands/entity.ts","../src/commands/bpm.ts","../src/commands/workflow.ts","../src/commands/s3.ts","../src/commands/openclaw.ts"],"names":["chalk","login","getAccessToken","isPlainObject","readFileSync","existsSync","join","homedir","mkdirSync","writeFileSync","rmSync","createClient","Option"],"mappings":"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","file":"cli.js","sourcesContent":["import { existsSync, readFileSync, writeFileSync, rmSync, mkdirSync } from \"fs\";\nimport { join } from \"path\";\nimport { homedir } from \"os\";\n\nconst AMASTER_CONFIG_DIR = join(homedir(), \".amaster\");\nconst CONFIG_FILE = join(AMASTER_CONFIG_DIR, \"config.json\");\n\nexport interface AppConfig {\n baseURL: string;\n ossEndpoint?: string;\n initializedAt: string;\n}\n\nexport interface AuthSession {\n accessToken: string;\n refreshToken?: string;\n expiresAt?: string;\n user?: {\n uid: string;\n email: string;\n name?: string;\n };\n loggedInAt: string;\n}\n\nexport interface RuntimeConfig {\n apps: Record<string, AppConfig>;\n currentApp?: string;\n}\n\nexport function getConfig(): RuntimeConfig {\n if (!existsSync(CONFIG_FILE)) {\n return { apps: {} };\n }\n try {\n return JSON.parse(readFileSync(CONFIG_FILE, \"utf-8\")) as RuntimeConfig;\n } catch {\n return { apps: {} };\n }\n}\n\nexport function saveConfig(config: RuntimeConfig): void {\n if (!existsSync(AMASTER_CONFIG_DIR)) {\n mkdirSync(AMASTER_CONFIG_DIR, { recursive: true });\n }\n writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));\n}\n\nexport function getAppConfig(appCode: string): AppConfig | null {\n const config = getConfig();\n return config.apps[appCode] || null;\n}\n\nexport function addApp(appCode: string, appConfig: AppConfig): void {\n const config = getConfig();\n config.apps[appCode] = appConfig;\n if (!config.currentApp) {\n config.currentApp = appCode;\n }\n saveConfig(config);\n}\n\nexport function removeApp(appCode: string): void {\n const config = getConfig();\n if (config.apps[appCode]) {\n delete config.apps[appCode];\n // Remove auth file\n const authFile = join(AMASTER_CONFIG_DIR, `auth-${appCode}.json`);\n if (existsSync(authFile)) {\n rmSync(authFile, { force: true });\n }\n // Update current app if needed\n if (config.currentApp === appCode) {\n const remainingApps = Object.keys(config.apps);\n config.currentApp = remainingApps.length > 0 ? remainingApps[0] : undefined;\n }\n saveConfig(config);\n }\n}\n\nexport function setCurrentApp(appCode: string): boolean {\n const config = getConfig();\n if (!config.apps[appCode]) {\n return false;\n }\n config.currentApp = appCode;\n saveConfig(config);\n return true;\n}\n\nexport function getCurrentApp(): string | null {\n const config = getConfig();\n return config.currentApp || null;\n}\n\nexport function listApps(): string[] {\n const config = getConfig();\n return Object.keys(config.apps);\n}\n\nexport function getBaseURL(appCode?: string): string | null {\n const code = appCode || getCurrentApp();\n if (!code) return null;\n const appConfig = getAppConfig(code);\n return appConfig?.baseURL || null;\n}\n\nexport function getAuthSession(appCode: string): AuthSession | null {\n const authFile = join(AMASTER_CONFIG_DIR, `auth-${appCode}.json`);\n if (!existsSync(authFile)) {\n return null;\n }\n try {\n const content = readFileSync(authFile, \"utf-8\");\n return JSON.parse(content) as AuthSession;\n } catch {\n return null;\n }\n}\n\nexport function saveAuthSession(appCode: string, session: AuthSession): void {\n if (!existsSync(AMASTER_CONFIG_DIR)) {\n mkdirSync(AMASTER_CONFIG_DIR, { recursive: true });\n }\n const authFile = join(AMASTER_CONFIG_DIR, `auth-${appCode}.json`);\n writeFileSync(authFile, JSON.stringify(session, null, 2), { mode: 0o600 });\n}\n\nexport function clearAuthSession(appCode: string): void {\n const authFile = join(AMASTER_CONFIG_DIR, `auth-${appCode}.json`);\n if (existsSync(authFile)) {\n rmSync(authFile, { force: true });\n }\n}\n\nexport function isAuthenticated(appCode: string): boolean {\n const session = getAuthSession(appCode);\n if (!session) return false;\n \n if (session.expiresAt) {\n const expiresAt = new Date(session.expiresAt);\n if (expiresAt < new Date()) {\n return false;\n }\n }\n \n return true;\n}\n\nexport function getAccessToken(appCode: string): string | null {\n const session = getAuthSession(appCode);\n return session?.accessToken || null;\n}\n\nexport function shouldRefreshToken(appCode: string): boolean {\n const session = getAuthSession(appCode);\n if (!session?.expiresAt) return false;\n \n const expiresAt = new Date(session.expiresAt);\n const now = new Date();\n const fiveMinutes = 5 * 60 * 1000;\n \n return expiresAt.getTime() - now.getTime() < fiveMinutes;\n}\n","#!/usr/bin/env node\nimport { Command, Option } from \"commander\";\nimport chalk from \"chalk\";\nimport { createClient, type AmasterClient } from \"@amaster.ai/client\";\nimport { \n getAccessToken, \n getAppConfig,\n shouldRefreshToken,\n isAuthenticated,\n listApps,\n setCurrentApp,\n getCurrentApp\n} from \"./config.js\";\nimport * as auth from \"./commands/auth.js\";\nimport * as entity from \"./commands/entity.js\";\nimport * as bpm from \"./commands/bpm.js\";\nimport * as workflow from \"./commands/workflow.js\";\nimport * as s3 from \"./commands/s3.js\";\nimport * as openclaw from \"./commands/openclaw.js\";\nimport { createFormatOption, renderOutput } from \"./output.js\";\n\nexport function resolveAppCode(optionsApp: string | undefined): string {\n if (optionsApp) {\n return optionsApp;\n }\n \n const defaultApp = getCurrentApp();\n if (defaultApp) {\n return defaultApp;\n }\n \n console.error(chalk.red(\"❌ No app specified.\"));\n console.log(chalk.yellow(\"Use one of:\"));\n console.log(chalk.gray(\" 1. Add --app <app-code> to the command\"));\n console.log(chalk.gray(\" 2. Set a default app: amaster use <app-code>\"));\n process.exit(1);\n}\n\nexport function createAmasterClient(appCode: string): AmasterClient {\n const appConfig = getAppConfig(appCode);\n \n if (!appConfig) {\n console.error(chalk.red(`❌ App not configured: ${appCode}`));\n console.log(chalk.yellow(`Initialize it first: amaster init --app-code ${appCode} --url <url>`));\n process.exit(1);\n }\n\n const token = getAccessToken(appCode);\n\n if (!token) {\n console.error(chalk.red(`❌ Not authenticated for app: ${appCode}`));\n console.log(chalk.yellow(`Login first: amaster login --app ${appCode}`));\n process.exit(1);\n }\n\n if (shouldRefreshToken(appCode)) {\n console.error(chalk.yellow(\"⚠️ Session expiring soon. Please login again.\"));\n }\n\n const client = createClient({\n baseURL: appConfig.baseURL,\n headers: { \n Authorization: `Bearer ${token}`,\n },\n onUnauthorized: () => {\n console.error(chalk.red(\"\\n❌ Session expired. Please login again.\"));\n console.error(chalk.yellow(`Run: amaster login --app ${appCode}`));\n process.exit(1);\n },\n });\n\n // Set the token in the auth client for authenticated requests\n client.setAccessToken(token);\n\n return client;\n}\n\nconst program = new Command();\n\nprogram\n .name(\"amaster\")\n .description(\"CLI for Amaster SDK - Multi-app support for OpenClaw\")\n .version(\"1.0.0\");\n\nprogram\n .command(\"apps\")\n .description(\"List all configured apps\")\n .addOption(createFormatOption())\n .action((options) => {\n const apps = listApps();\n const current = getCurrentApp();\n\n const appSummaries = apps.map((appCode) => {\n const config = getAppConfig(appCode);\n return {\n appCode,\n baseURL: config?.baseURL || null,\n authenticated: isAuthenticated(appCode),\n current: appCode === current,\n };\n });\n\n renderOutput(appSummaries, {\n format: options.format,\n pretty: () => {\n console.log(chalk.blue(\"\\n📱 Configured Apps\\n\"));\n\n if (appSummaries.length === 0) {\n console.log(chalk.gray(\" No apps configured\"));\n console.log(chalk.gray(\" Run: amaster init --app-code <code> --url <url>\"));\n } else {\n for (const app of appSummaries) {\n const prefix = app.current ? chalk.green(\"→ \") : \" \";\n console.log(`${prefix}${chalk.bold(app.appCode)}${app.current ? chalk.green(\" (current)\") : \"\"}`);\n console.log(` ${chalk.gray(app.baseURL || \"No URL\")}`);\n console.log(\n ` ${app.authenticated ? chalk.green(\"● Authenticated\") : chalk.yellow(\"○ Not authenticated\")}`\n );\n console.log();\n }\n }\n console.log();\n },\n });\n });\n\nprogram\n .command(\"use <app-code>\")\n .description(\"Set the default app for subsequent commands\")\n .addOption(createFormatOption())\n .action((appCode: string, options) => {\n if (setCurrentApp(appCode)) {\n renderOutput(\n {\n appCode,\n current: true,\n },\n {\n format: options.format,\n pretty: () => {\n console.log(chalk.green(`✅ Now using app: ${appCode}`));\n },\n }\n );\n } else {\n console.error(chalk.red(`❌ App not found: ${appCode}`));\n process.exit(1);\n }\n });\n\nprogram\n .command(\"init\")\n .description(\"Initialize an app for OpenClaw integration\")\n .requiredOption(\"--app-code <code>\", \"Application code (e.g., fhv94bto1)\")\n .requiredOption(\"--url <url>\", \"Base URL (e.g., https://fhv94bto1.helige.cn)\")\n .option(\"--api-key <key>\", \"API Key for OSS access\")\n .option(\"--oss-endpoint <endpoint>\", \"OSS endpoint\")\n .option(\"--force\", \"Reinitialize an existing app\")\n .addOption(createFormatOption())\n .action(async (options) => {\n await openclaw.initOpenClaw({\n appCode: options.appCode,\n baseURL: options.url,\n apiKey: options.apiKey,\n ossEndpoint: options.ossEndpoint,\n force: options.force,\n format: options.format,\n });\n });\n\nprogram\n .command(\"login\")\n .description(\"Authenticate with an app\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-u, --username <username>\", \"Username\")\n .option(\"-e, --email <email>\", \"Email address\")\n .option(\"-p, --password <password>\", \"Password\")\n .addOption(createFormatOption())\n .action(async (options) => {\n const appCode = resolveAppCode(options.app);\n await auth.login(appCode, {\n username: options.username,\n email: options.email,\n password: options.password,\n format: options.format,\n });\n });\n\nprogram\n .command(\"logout\")\n .description(\"Logout from an app\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .addOption(createFormatOption())\n .action(async (options) => {\n const appCode = resolveAppCode(options.app);\n await auth.logout(appCode, { format: options.format });\n });\n\nprogram\n .command(\"whoami\")\n .description(\"Show current user information\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .addOption(createFormatOption())\n .action(async (options) => {\n const appCode = resolveAppCode(options.app);\n await auth.getMe(() => createAmasterClient(appCode), { format: options.format });\n });\n\nconst entityCmd = program\n .command(\"entity\")\n .description(\"Manage entities\");\n\nentityCmd\n .command(\"list <namespace> <entity>\")\n .description(\"List entities\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"--page <page>\", \"Page number\", \"1\")\n .option(\"--page-size <size>\", \"Page size\", \"10\")\n .option(\"-f, --fields <fields>\", \"Comma-separated fields to return\")\n .option(\"-r, --relations <relations>\", \"Comma-separated relations to load\")\n .option(\"-k, --keyword <keyword>\", \"Keyword to search\")\n .option(\"--keyword-fields <fields>\", \"Comma-separated fields for keyword search\")\n .option(\"--order-by <field>\", \"Field to sort by\")\n .addOption(new Option(\"--order-dir <dir>\", \"Sort direction\").choices([\"asc\", \"desc\"]))\n .option(\"--orders <orders>\", \"Multi-order expression, e.g. created_at:desc,name:asc\")\n .option(\"--filter <json>\", \"Advanced __filter JSON or @file\")\n .option(\"--limit <limit>\", \"Limit number of records\")\n .option(\"--offset <offset>\", \"Offset number of records\")\n .option(\"-q, --query <json>\", \"Additional EntityQueryParams as JSON or @file\")\n .addOption(createFormatOption())\n .action(async (namespace: string, entityName: string, options) => {\n const appCode = resolveAppCode(options.app);\n await entity.listEntities(createAmasterClient(appCode), {\n namespace,\n entity: entityName,\n page: parseInt(options.page),\n pageSize: parseInt(options.pageSize),\n fields: options.fields,\n relations: options.relations,\n keyword: options.keyword,\n keywordFields: options.keywordFields,\n orderBy: options.orderBy,\n orderDir: options.orderDir,\n orders: options.orders,\n filter: options.filter,\n limit: options.limit ? parseInt(options.limit) : undefined,\n offset: options.offset ? parseInt(options.offset) : undefined,\n query: options.query,\n format: options.format,\n });\n });\n\nentityCmd\n .command(\"get <namespace> <entity> <id>\")\n .description(\"Get entity by ID\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .addOption(createFormatOption())\n .action(async (namespace: string, entityName: string, id: string, options) => {\n const appCode = resolveAppCode(options.app);\n await entity.getEntity(createAmasterClient(appCode), {\n namespace,\n entity: entityName,\n id,\n format: options.format,\n });\n });\n\nentityCmd\n .command(\"create <namespace> <entity>\")\n .description(\"Create new entity\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-d, --data <json>\", \"Entity data as JSON or @file\")\n .addOption(createFormatOption())\n .action(async (namespace: string, entityName: string, options) => {\n const appCode = resolveAppCode(options.app);\n await entity.createEntity(createAmasterClient(appCode), { \n namespace, \n entity: entityName, \n data: options.data,\n format: options.format,\n });\n });\n\nentityCmd\n .command(\"update <namespace> <entity> <id>\")\n .description(\"Update entity\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-d, --data <json>\", \"Entity data as JSON or @file\")\n .addOption(createFormatOption())\n .action(async (namespace: string, entityName: string, id: string, options) => {\n const appCode = resolveAppCode(options.app);\n await entity.updateEntity(createAmasterClient(appCode), { \n namespace, \n entity: entityName, \n id, \n data: options.data,\n format: options.format,\n });\n });\n\nentityCmd\n .command(\"delete <namespace> <entity> <id>\")\n .description(\"Delete entity\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .addOption(createFormatOption())\n .action(async (namespace: string, entityName: string, id: string, options) => {\n const appCode = resolveAppCode(options.app);\n await entity.deleteEntity(createAmasterClient(appCode), { \n namespace, \n entity: entityName, \n id,\n format: options.format,\n });\n });\n\nentityCmd\n .command(\"options <namespace> <entity>\")\n .description(\"List entity options\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-f, --fields <fields>\", \"Comma-separated fields to return\")\n .addOption(createFormatOption())\n .action(async (namespace: string, entityName: string, options) => {\n const appCode = resolveAppCode(options.app);\n await entity.listEntityOptions(createAmasterClient(appCode), {\n namespace,\n entity: entityName,\n fields: options.fields,\n format: options.format,\n });\n });\n\nentityCmd\n .command(\"bulk-update <namespace> <entity>\")\n .description(\"Bulk update entities\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-i, --items <json>\", \"Items array as JSON or @file\")\n .addOption(createFormatOption())\n .action(async (namespace: string, entityName: string, options) => {\n const appCode = resolveAppCode(options.app);\n await entity.bulkUpdateEntities(createAmasterClient(appCode), {\n namespace,\n entity: entityName,\n items: options.items,\n format: options.format,\n });\n });\n\nentityCmd\n .command(\"bulk-delete <namespace> <entity>\")\n .description(\"Bulk delete entities\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs, JSON array, or @file\")\n .addOption(createFormatOption())\n .action(async (namespace: string, entityName: string, options) => {\n const appCode = resolveAppCode(options.app);\n await entity.bulkDeleteEntities(createAmasterClient(appCode), {\n namespace,\n entity: entityName,\n ids: options.ids,\n format: options.format,\n });\n });\n\nconst bpmCmd = program\n .command(\"bpm\")\n .description(\"Manage BPM processes and tasks\");\n\nbpmCmd\n .command(\"processes\")\n .description(\"List process definitions\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .addOption(createFormatOption())\n .action(async (options) => {\n const appCode = resolveAppCode(options.app);\n await bpm.listProcesses(createAmasterClient(appCode), { format: options.format });\n });\n\nbpmCmd\n .command(\"start <key>\")\n .description(\"Start a process instance\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-v, --variables <json>\", \"Process variables as JSON\")\n .addOption(createFormatOption())\n .action(async (key: string, options) => {\n const appCode = resolveAppCode(options.app);\n await bpm.startProcess(createAmasterClient(appCode), { \n key, \n variables: options.variables,\n format: options.format,\n });\n });\n\nbpmCmd\n .command(\"tasks\")\n .description(\"List tasks\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-a, --assignee <assignee>\", \"Filter by assignee\")\n .addOption(createFormatOption())\n .action(async (options) => {\n const appCode = resolveAppCode(options.app);\n await bpm.listTasks(createAmasterClient(appCode), {\n assignee: options.assignee,\n format: options.format,\n });\n });\n\nbpmCmd\n .command(\"complete <id>\")\n .description(\"Complete a task\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-v, --variables <json>\", \"Task variables as JSON\")\n .addOption(createFormatOption())\n .action(async (id: string, options) => {\n const appCode = resolveAppCode(options.app);\n await bpm.completeTask(createAmasterClient(appCode), { \n id, \n variables: options.variables,\n format: options.format,\n });\n });\n\nconst workflowCmd = program\n .command(\"workflow\")\n .description(\"Manage workflows\");\n\nworkflowCmd\n .command(\"list\")\n .description(\"List workflows\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .addOption(createFormatOption())\n .action(async (options) => {\n const appCode = resolveAppCode(options.app);\n await workflow.listWorkflows(createAmasterClient(appCode), { format: options.format });\n });\n\nworkflowCmd\n .command(\"execute <id>\")\n .description(\"Execute a workflow\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-i, --input <json>\", \"Workflow input as JSON\")\n .addOption(createFormatOption())\n .action(async (id: string, options) => {\n const appCode = resolveAppCode(options.app);\n await workflow.executeWorkflow(createAmasterClient(appCode), {\n id,\n input: options.input,\n format: options.format,\n });\n });\n\nconst s3Cmd = program\n .command(\"s3\")\n .description(\"Manage S3 files\");\n\ns3Cmd\n .command(\"list\")\n .description(\"List files\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-b, --bucket <bucket>\", \"Bucket name\")\n .addOption(createFormatOption())\n .action(async (options) => {\n const appCode = resolveAppCode(options.app);\n await s3.listFiles(createAmasterClient(appCode), {\n bucket: options.bucket,\n format: options.format,\n });\n });\n\ns3Cmd\n .command(\"upload <file>\")\n .description(\"Upload a file\")\n .option(\"--app <app-code>\", \"App code (uses default if not specified)\")\n .option(\"-b, --bucket <bucket>\", \"Bucket name\")\n .option(\"-k, --key <key>\", \"Object key\")\n .addOption(createFormatOption())\n .action(async (file: string, options) => {\n const appCode = resolveAppCode(options.app);\n await s3.uploadFile(createAmasterClient(appCode), {\n file,\n bucket: options.bucket,\n key: options.key,\n format: options.format,\n });\n });\n\n// Only parse when run directly (not when imported for testing)\nconst isMainModule = import.meta.url === new URL(process.argv[1] || '', import.meta.url).href ||\n import.meta.url.endsWith(process.argv[1] || '') ||\n process.argv[1]?.includes('cli.js') ||\n false;\n\nif (isMainModule) {\n program.parseAsync(process.argv).then(\n () => process.exit(0),\n (err) => {\n console.error(err);\n process.exit(1);\n }\n );\n}\n","import chalk from \"chalk\";\nimport { createClient } from \"@amaster.ai/client\";\nimport { \n getAppConfig, \n saveAuthSession, \n clearAuthSession,\n} from \"../config.js\";\nimport type { AmasterClient } from \"@amaster.ai/client\";\nimport { createSpinner, renderOutput } from \"../output.js\";\n\nexport async function login(\n appCode: string,\n options: { username?: string; email?: string; password?: string; format?: string }\n) {\n const spinner = createSpinner(`Logging in to ${appCode}...`, options.format);\n\n try {\n const appConfig = getAppConfig(appCode);\n if (!appConfig) {\n spinner.fail(`App not configured: ${appCode}`);\n console.error(chalk.red(`\\n❌ App not found: ${appCode}`));\n console.log(chalk.yellow(`Initialize it first: amaster init --app-code ${appCode} --url <url>`));\n process.exit(1);\n }\n\n let username = options.username;\n let email = options.email;\n let password = options.password;\n\n if (!username && !email) {\n const { default: inquirer } = await import(\"inquirer\");\n const answers = await inquirer.prompt([\n {\n type: \"input\",\n name: \"login\",\n message: \"Username or Email:\",\n },\n {\n type: \"password\",\n name: \"password\",\n message: \"Password:\",\n when: !password,\n },\n ]);\n\n // Auto-detect if input is email or username\n const login = answers.login;\n if (login.includes('@')) {\n email = login;\n } else {\n username = login;\n }\n password = password || answers.password;\n } else if (!password) {\n const { default: inquirer } = await import(\"inquirer\");\n const answers = await inquirer.prompt([\n {\n type: \"password\",\n name: \"password\",\n message: \"Password:\",\n },\n ]);\n password = answers.password;\n }\n\n const client = createClient({ baseURL: appConfig.baseURL });\n\n // Build login params based on provided credentials\n const loginParams: any = { password: password! };\n if (email) {\n loginParams.email = email;\n } else if (username) {\n loginParams.username = username;\n }\n\n const result = await client.auth.login(loginParams);\n\n if (result.error) {\n spinner.fail(\"Login failed\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n const loginData = result.data;\n if (!loginData?.accessToken) {\n spinner.fail(\"Login failed: No access token received\");\n process.exit(1);\n }\n\n const loggedInAt = new Date().toISOString();\n const expiresAt = loginData.expiresIn\n ? new Date(Date.now() + loginData.expiresIn * 1000).toISOString()\n : undefined;\n const sessionUser = loginData.user\n ? {\n uid: loginData.user.uid,\n email: loginData.user.email || \"\",\n name: loginData.user.displayName || loginData.user.username || undefined,\n }\n : undefined;\n\n saveAuthSession(appCode, {\n accessToken: loginData.accessToken,\n expiresAt,\n user: sessionUser,\n loggedInAt,\n });\n\n spinner.succeed(`Login successful: ${appCode}`);\n renderOutput(\n {\n appCode,\n baseURL: appConfig.baseURL,\n user: loginData.user ?? null,\n expiresAt: expiresAt ?? null,\n loggedInAt,\n },\n {\n format: options.format,\n pretty: () => {\n console.log(\n chalk.green(\n `\\nWelcome, ${loginData.user?.displayName || loginData.user?.email || loginData.user?.username || email}!`\n )\n );\n console.log(chalk.gray(`App: ${appCode}`));\n console.log(chalk.gray(`URL: ${appConfig.baseURL}`));\n\n if (expiresAt) {\n const expires = new Date(expiresAt);\n console.log(chalk.gray(`Session expires: ${expires.toLocaleString()}`));\n }\n },\n }\n );\n } catch (error) {\n spinner.fail(\"Login failed\");\n throw error;\n }\n}\n\nexport async function logout(appCode: string, options: { format?: string } = {}) {\n const spinner = createSpinner(`Logging out from ${appCode}...`, options.format);\n\n try {\n const appConfig = getAppConfig(appCode);\n if (appConfig) {\n const { getAccessToken } = await import(\"../config.js\");\n const token = getAccessToken(appCode);\n if (token) {\n const client = createClient({ \n baseURL: appConfig.baseURL,\n headers: { Authorization: `Bearer ${token}` }\n });\n await client.auth.logout().catch(() => {});\n }\n }\n \n clearAuthSession(appCode);\n spinner.succeed(`Logout successful: ${appCode}`);\n renderOutput(\n {\n appCode,\n loggedOut: true,\n },\n {\n format: options.format,\n pretty: () => {\n console.log(chalk.green(`Logged out from ${appCode}`));\n },\n }\n );\n } catch (error) {\n spinner.fail(\"Logout failed\");\n throw error;\n }\n}\n\nexport async function getMe(getClient: () => AmasterClient, options: { format?: string } = {}) {\n const spinner = createSpinner(\"Fetching user info...\", options.format);\n\n try {\n const client = getClient();\n \n const result = await client.auth.getMe();\n\n if (result.error) {\n spinner.fail(\"Failed to fetch user info\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"User info retrieved\");\n\n const user = result.data;\n renderOutput(user, {\n format: options.format,\n pretty: () => {\n console.log(chalk.blue(\"\\n👤 User Profile\\n\"));\n console.log(` ${chalk.bold(\"UID:\")} ${user?.uid}`);\n console.log(` ${chalk.bold(\"Email:\")} ${user?.email}`);\n console.log(` ${chalk.bold(\"Name:\")} ${user?.displayName || user?.username || \"N/A\"}`);\n console.log(` ${chalk.bold(\"Status:\")} ${user?.isActive ? \"Active\" : \"Inactive\"}`);\n },\n });\n } catch (error) {\n spinner.fail(\"Failed to fetch user info\");\n throw error;\n }\n}\n","import { Option } from \"commander\";\nimport ora from \"ora\";\n\nexport const OUTPUT_FORMATS = [\"json\", \"pretty\", \"table\", \"ndjson\", \"csv\"] as const;\n\nexport type OutputFormat = (typeof OUTPUT_FORMATS)[number];\n\ntype OutputRow = Record<string, unknown>;\n\nexport interface RenderOutputOptions {\n format?: string;\n pretty?: () => void;\n tableRows?: OutputRow[];\n csvRows?: OutputRow[];\n ndjsonItems?: unknown[];\n}\n\nexport function createFormatOption(description = \"Output format\"): Option {\n return new Option(\n \"--format <format>\",\n `${description}: ${OUTPUT_FORMATS.join(\", \")}`\n )\n .choices([...OUTPUT_FORMATS])\n .default(\"json\");\n}\n\nexport function resolveOutputFormat(format?: string): OutputFormat {\n if (!format) {\n return \"json\";\n }\n\n if ((OUTPUT_FORMATS as readonly string[]).includes(format)) {\n return format as OutputFormat;\n }\n\n throw new Error(`Unsupported output format: ${format}`);\n}\n\nexport function isPrettyOutput(format?: string): boolean {\n return resolveOutputFormat(format) === \"pretty\";\n}\n\nexport function createSpinner(text: string, format?: string) {\n return ora({\n text,\n isSilent: !isPrettyOutput(format),\n }).start();\n}\n\nexport function renderOutput(data: unknown, options: RenderOutputOptions = {}): void {\n const format = resolveOutputFormat(options.format);\n\n switch (format) {\n case \"pretty\":\n if (options.pretty) {\n options.pretty();\n return;\n }\n renderPrettyFallback(data);\n return;\n case \"json\":\n console.log(JSON.stringify(data ?? null, null, 2));\n return;\n case \"ndjson\":\n renderNdjson(options.ndjsonItems ?? data);\n return;\n case \"table\":\n renderTable(options.tableRows ?? inferRows(data));\n return;\n case \"csv\":\n renderCsv(options.csvRows ?? inferRows(data));\n return;\n }\n}\n\nfunction renderPrettyFallback(data: unknown): void {\n const rows = inferRows(data);\n\n if (rows.length === 0) {\n console.log(JSON.stringify(data ?? null, null, 2));\n return;\n }\n\n renderTable(rows);\n}\n\nfunction renderNdjson(data: unknown): void {\n const items = inferNdjsonItems(data);\n\n for (const item of items) {\n console.log(JSON.stringify(item ?? null));\n }\n}\n\nfunction renderTable(rows: OutputRow[]): void {\n console.table(rows);\n}\n\nfunction renderCsv(rows: OutputRow[]): void {\n if (rows.length === 0) {\n return;\n }\n\n const headers: string[] = [];\n\n for (const row of rows) {\n for (const key of Object.keys(row)) {\n if (!headers.includes(key)) {\n headers.push(key);\n }\n }\n }\n\n if (headers.length === 0) {\n return;\n }\n\n console.log(headers.join(\",\"));\n\n for (const row of rows) {\n console.log(headers.map((header) => escapeCsv(row[header])).join(\",\"));\n }\n}\n\nfunction inferNdjsonItems(data: unknown): unknown[] {\n const collection = extractCollection(data);\n if (collection) {\n return collection;\n }\n\n if (Array.isArray(data)) {\n return data;\n }\n\n return [data ?? null];\n}\n\nfunction inferRows(data: unknown): OutputRow[] {\n const collection = extractCollection(data);\n if (collection) {\n return normalizeRows(collection);\n }\n\n if (Array.isArray(data)) {\n return normalizeRows(data);\n }\n\n if (isPlainObject(data)) {\n return [normalizeRow(data)];\n }\n\n return [{ value: normalizeCell(data) }];\n}\n\nfunction extractCollection(data: unknown): unknown[] | null {\n if (!isPlainObject(data)) {\n return null;\n }\n\n if (Array.isArray(data.items)) {\n return data.items;\n }\n\n if (Array.isArray(data.list)) {\n return data.list;\n }\n\n return null;\n}\n\nfunction normalizeRows(items: unknown[]): OutputRow[] {\n return items.map((item) => {\n if (isPlainObject(item)) {\n return normalizeRow(item);\n }\n\n return { value: normalizeCell(item) };\n });\n}\n\nfunction normalizeRow(row: OutputRow): OutputRow {\n return Object.fromEntries(\n Object.entries(row).map(([key, value]) => [key, normalizeCell(value)])\n );\n}\n\nfunction normalizeCell(value: unknown): string | number | boolean | null {\n if (value === null || value === undefined) {\n return null;\n }\n\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n return value;\n }\n\n return JSON.stringify(value);\n}\n\nfunction escapeCsv(value: unknown): string {\n const cell =\n value === null || value === undefined\n ? \"\"\n : typeof value === \"string\"\n ? value\n : typeof value === \"number\" || typeof value === \"boolean\"\n ? String(value)\n : JSON.stringify(value);\n\n if (/[\",\\n]/.test(cell)) {\n return `\"${cell.replace(/\"/g, \"\\\"\\\"\")}\"`;\n }\n\n return cell;\n}\n\nfunction isPlainObject(value: unknown): value is OutputRow {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import { readFileSync } from \"node:fs\";\nimport chalk from \"chalk\";\nimport type { AmasterClient } from \"@amaster.ai/client\";\nimport { createSpinner, renderOutput } from \"../output.js\";\n\ntype EntityRecord = Record<string, unknown>;\ntype BulkUpdateItem = EntityRecord & { id: string | number };\n\nfunction isPlainObject(value: unknown): value is EntityRecord {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction resolveInputSource(input: string): string {\n if (!input.startsWith(\"@\")) {\n return input;\n }\n\n const filePath = input.slice(1);\n if (!filePath) {\n throw new Error(\"File path is required after '@'.\");\n }\n\n return readFileSync(filePath, \"utf8\");\n}\n\nfunction parseJsonInput(input: string, label: string): unknown {\n const source = resolveInputSource(input).trim();\n\n if (!source) {\n throw new Error(`${label} is required.`);\n }\n\n try {\n return JSON.parse(source);\n } catch (error) {\n const reason = error instanceof Error ? error.message : String(error);\n throw new Error(`Invalid ${label}: ${reason}`);\n }\n}\n\nasync function promptForJson(message: string, defaultValue: string): Promise<string> {\n const { default: inquirer } = await import(\"inquirer\");\n const { jsonData } = await inquirer.prompt([\n {\n type: \"editor\",\n name: \"jsonData\",\n message,\n default: defaultValue,\n },\n ]);\n\n return jsonData;\n}\n\nasync function loadJsonObjectInput(\n input: string | undefined,\n label: string,\n promptMessage: string\n): Promise<EntityRecord> {\n const source = input ?? (await promptForJson(promptMessage, \"{}\"));\n const value = parseJsonInput(source, label);\n\n if (!isPlainObject(value)) {\n throw new Error(`${label} must be a JSON object.`);\n }\n\n return value;\n}\n\nasync function loadJsonArrayInput(\n input: string | undefined,\n label: string,\n promptMessage: string\n): Promise<unknown[]> {\n const source = input ?? (await promptForJson(promptMessage, \"[]\"));\n const value = parseJsonInput(source, label);\n\n if (!Array.isArray(value)) {\n throw new Error(`${label} must be a JSON array.`);\n }\n\n return value;\n}\n\nfunction loadOptionalJsonObjectInput(input: string | undefined, label: string): EntityRecord {\n if (!input) {\n return {};\n }\n\n const value = parseJsonInput(input, label);\n if (!isPlainObject(value)) {\n throw new Error(`${label} must be a JSON object.`);\n }\n\n return value;\n}\n\nfunction parseCommaSeparatedValues(value: string | undefined): string[] | undefined {\n if (!value) {\n return undefined;\n }\n\n const values = value\n .split(\",\")\n .map((entry) => entry.trim())\n .filter(Boolean);\n\n return values.length > 0 ? values : undefined;\n}\n\nfunction validateBulkUpdateItems(items: unknown[]): BulkUpdateItem[] {\n return items.map((item, index) => {\n if (!isPlainObject(item)) {\n throw new Error(`Bulk update item at index ${index} must be a JSON object.`);\n }\n\n if (typeof item.id !== \"string\" && typeof item.id !== \"number\") {\n throw new Error(`Bulk update item at index ${index} must include an 'id'.`);\n }\n\n return item as BulkUpdateItem;\n });\n}\n\nfunction parseIdsInput(input: string): Array<string | number> {\n const source = resolveInputSource(input).trim();\n\n if (!source) {\n throw new Error(\"IDs are required.\");\n }\n\n if (source.startsWith(\"[\")) {\n const value = parseJsonInput(input, \"IDs\");\n if (!Array.isArray(value)) {\n throw new Error(\"IDs must be a JSON array.\");\n }\n\n return value.map((id, index) => {\n if (typeof id !== \"string\" && typeof id !== \"number\") {\n throw new Error(`ID at index ${index} must be a string or number.`);\n }\n return id;\n });\n }\n\n const ids = source\n .split(/[,\\n]/)\n .map((id) => id.trim())\n .filter(Boolean);\n\n if (ids.length === 0) {\n throw new Error(\"IDs are required.\");\n }\n\n return ids;\n}\n\nasync function loadIdsInput(input: string | undefined): Promise<Array<string | number>> {\n if (input) {\n return parseIdsInput(input);\n }\n\n const { default: inquirer } = await import(\"inquirer\");\n const { ids } = await inquirer.prompt([\n {\n type: \"input\",\n name: \"ids\",\n message: \"Enter IDs (comma-separated or JSON array):\",\n },\n ]);\n\n return parseIdsInput(ids);\n}\n\nfunction exitWithCommandError(\n spinner: ReturnType<typeof createSpinner>,\n failureMessage: string,\n error: unknown\n): never {\n spinner.fail(failureMessage);\n const details = error instanceof Error ? error.message : String(error);\n if (details) {\n console.error(chalk.red(details));\n }\n process.exit(1);\n}\n\nfunction buildListQueryParams(options: {\n query?: string;\n fields?: string;\n relations?: string;\n keyword?: string;\n keywordFields?: string;\n orderBy?: string;\n orderDir?: string;\n orders?: string;\n filter?: string;\n limit?: number;\n offset?: number;\n}): EntityRecord {\n const params = loadOptionalJsonObjectInput(options.query, \"query params\");\n const fields = parseCommaSeparatedValues(options.fields);\n const relations = parseCommaSeparatedValues(options.relations);\n const keywordFields = parseCommaSeparatedValues(options.keywordFields);\n\n if (keywordFields && !options.keyword) {\n throw new Error(\"--keyword-fields requires --keyword.\");\n }\n\n if (options.orderDir && !options.orderBy) {\n throw new Error(\"--order-dir requires --order-by.\");\n }\n\n if (options.orders && (options.orderBy || options.orderDir)) {\n throw new Error(\"--orders cannot be used together with --order-by or --order-dir.\");\n }\n\n if (fields) {\n params.__fields = fields;\n }\n\n if (relations) {\n params.__relations = relations;\n }\n\n if (options.keyword) {\n params.__keywords = keywordFields ? { fields: keywordFields, value: options.keyword } : options.keyword;\n }\n\n if (options.orderBy) {\n params.orderBy = options.orderBy;\n }\n\n if (options.orderDir) {\n params.orderDir = options.orderDir;\n }\n\n if (options.orders) {\n params.__orders = options.orders;\n }\n\n if (options.filter) {\n params.__filter = loadOptionalJsonObjectInput(options.filter, \"filter\");\n }\n\n if (options.limit !== undefined) {\n params.limit = options.limit;\n }\n\n if (options.offset !== undefined) {\n params.offset = options.offset;\n }\n\n return params;\n}\n\nexport async function listEntities(\n client: AmasterClient,\n options: {\n namespace: string;\n entity: string;\n page?: number;\n pageSize?: number;\n query?: string;\n fields?: string;\n relations?: string;\n keyword?: string;\n keywordFields?: string;\n orderBy?: string;\n orderDir?: string;\n orders?: string;\n filter?: string;\n limit?: number;\n offset?: number;\n format?: string;\n }\n) {\n const spinner = createSpinner(`Fetching ${options.entity}...`, options.format);\n\n try {\n const entityClient = client.entity as any;\n const query = buildListQueryParams(options);\n const result = await entityClient.list(options.namespace, options.entity, {\n ...query,\n page: options.page || 1,\n perPage: options.pageSize || 10,\n });\n\n if (result.error) {\n spinner.fail(\"Failed to fetch entities\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.stop();\n\n const listData = result.data as\n | Array<Record<string, unknown>>\n | { items?: Array<Record<string, unknown>>; list?: Array<Record<string, unknown>>; total?: number }\n | null\n | undefined;\n\n let items: Array<Record<string, unknown>> = [];\n let total = 0;\n if (Array.isArray(listData)) {\n items = listData;\n total = items.length;\n } else if (listData?.items) {\n items = listData.items;\n total = listData.total || items.length;\n } else if (listData?.list) {\n items = listData.list;\n total = listData.total || items.length;\n }\n\n renderOutput(result.data, {\n format: options.format,\n pretty: () => {\n console.log(chalk.blue(`\\n📦 ${options.entity} in ${options.namespace}`));\n console.log(chalk.gray(`共 ${total} 条记录:\\n`));\n\n if (items.length === 0) {\n console.log(chalk.gray(\" 暂无数据\"));\n return;\n }\n\n const firstItem = items[0]!;\n const keys = Object.keys(firstItem).slice(0, 8);\n\n const widths: Record<string, number> = {};\n keys.forEach((key) => {\n const maxValueWidth = Math.max(\n key.length,\n ...items.map((item) => {\n const val = item[key];\n if (val === null || val === undefined) return 4;\n const str = typeof val === \"object\" ? JSON.stringify(val) : String(val);\n return str.length;\n })\n );\n widths[key] = Math.min(maxValueWidth + 2, 30);\n });\n\n const headerLine = keys\n .map((key) => {\n const width = widths[key] ?? 0;\n return chalk.bold(key.slice(0, width).padEnd(width));\n })\n .join(\"│\");\n console.log(\" \" + headerLine);\n console.log(\" \" + keys.map((key) => \"─\".repeat(widths[key] ?? 0)).join(\"┼\"));\n\n for (const item of items) {\n const rowLine = keys\n .map((key) => {\n const width = widths[key] ?? 0;\n let val = item[key];\n if (val === null || val === undefined) val = \"null\";\n const str =\n typeof val === \"object\"\n ? JSON.stringify(val).slice(0, width - 2)\n : String(val).slice(0, width - 2);\n return str.padEnd(width);\n })\n .join(\"│\");\n console.log(\" \" + rowLine);\n }\n\n console.log();\n if (items.length < total) {\n console.log(chalk.gray(` ... 还有 ${total - items.length} 条记录`));\n }\n },\n });\n } catch (error) {\n exitWithCommandError(spinner, \"Failed to fetch entities\", error);\n }\n}\n\nexport async function getEntity(\n client: AmasterClient,\n options: { namespace: string; entity: string; id: string; format?: string }\n) {\n const spinner = createSpinner(`Fetching ${options.entity}...`, options.format);\n\n try {\n const entityClient = client.entity as any;\n const result = await entityClient.get(options.namespace, options.entity, options.id);\n\n if (result.error) {\n spinner.fail(\"Failed to fetch entity\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Entity retrieved\");\n\n renderOutput(result.data, {\n format: options.format,\n pretty: () => {\n console.log(chalk.blue(`\\n📄 ${options.entity}\\n`));\n console.log(JSON.stringify(result.data, null, 2));\n },\n });\n } catch (error) {\n exitWithCommandError(spinner, \"Failed to fetch entity\", error);\n }\n}\n\nexport async function createEntity(\n client: AmasterClient,\n options: { namespace: string; entity: string; data?: string; format?: string }\n) {\n const spinner = createSpinner(`Creating ${options.entity}...`, options.format);\n\n try {\n const entityClient = client.entity as any;\n const data = await loadJsonObjectInput(options.data, \"entity data\", \"Enter JSON data:\");\n\n const result = await entityClient.create(options.namespace, options.entity, data);\n\n if (result.error) {\n spinner.fail(\"Failed to create entity\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Entity created\");\n renderOutput(result.data, {\n format: options.format,\n pretty: () => {\n console.log(chalk.green(\"\\nCreated entity:\"));\n console.log(JSON.stringify(result.data, null, 2));\n },\n });\n } catch (error) {\n exitWithCommandError(spinner, \"Failed to create entity\", error);\n }\n}\n\nexport async function updateEntity(\n client: AmasterClient,\n options: { namespace: string; entity: string; id: string; data?: string; format?: string }\n) {\n const spinner = createSpinner(`Updating ${options.entity}...`, options.format);\n\n try {\n const entityClient = client.entity as any;\n const data = await loadJsonObjectInput(options.data, \"entity data\", \"Enter JSON data:\");\n\n const result = await entityClient.update(options.namespace, options.entity, options.id, data);\n\n if (result.error) {\n spinner.fail(\"Failed to update entity\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Entity updated\");\n renderOutput(result.data, {\n format: options.format,\n pretty: () => {\n console.log(chalk.green(\"\\nUpdated entity:\"));\n console.log(JSON.stringify(result.data, null, 2));\n },\n });\n } catch (error) {\n exitWithCommandError(spinner, \"Failed to update entity\", error);\n }\n}\n\nexport async function deleteEntity(\n client: AmasterClient,\n options: { namespace: string; entity: string; id: string; format?: string }\n) {\n const spinner = createSpinner(`Deleting ${options.entity}...`, options.format);\n\n try {\n const entityClient = client.entity as any;\n const result = await entityClient.delete(options.namespace, options.entity, options.id);\n\n if (result.error) {\n spinner.fail(\"Failed to delete entity\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Entity deleted\");\n renderOutput(\n {\n namespace: options.namespace,\n entity: options.entity,\n id: options.id,\n deleted: true,\n },\n {\n format: options.format,\n pretty: () => {\n console.log(chalk.green(`\\nDeleted ${options.entity} with ID: ${options.id}`));\n },\n }\n );\n } catch (error) {\n exitWithCommandError(spinner, \"Failed to delete entity\", error);\n }\n}\n\nexport async function listEntityOptions(\n client: AmasterClient,\n options: { namespace: string; entity: string; fields?: string; format?: string }\n) {\n const spinner = createSpinner(`Fetching ${options.entity} options...`, options.format);\n\n try {\n const entityClient = client.entity as any;\n const fields = parseCommaSeparatedValues(options.fields);\n const result = await entityClient.options(options.namespace, options.entity, fields);\n\n if (result.error) {\n spinner.fail(\"Failed to fetch entity options\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(`Found ${result.data?.length || 0} options`);\n renderOutput(result.data || [], {\n format: options.format,\n pretty: () => {\n console.log(chalk.blue(`\\n🧾 ${options.entity} options\\n`));\n console.log(JSON.stringify(result.data || [], null, 2));\n },\n });\n } catch (error) {\n exitWithCommandError(spinner, \"Failed to fetch entity options\", error);\n }\n}\n\nexport async function bulkUpdateEntities(\n client: AmasterClient,\n options: { namespace: string; entity: string; items?: string; format?: string }\n) {\n const spinner = createSpinner(`Bulk updating ${options.entity}...`, options.format);\n\n try {\n const entityClient = client.entity as any;\n const rawItems = await loadJsonArrayInput(\n options.items,\n \"bulk update items\",\n \"Enter JSON array of items:\"\n );\n const items = validateBulkUpdateItems(rawItems);\n const result = await entityClient.bulkUpdate(options.namespace, options.entity, items);\n\n if (result.error) {\n spinner.fail(\"Failed to bulk update entities\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(`Updated ${items.length} entities`);\n renderOutput(result.data, {\n format: options.format,\n pretty: () => {\n console.log(chalk.green(`\\nBulk updated ${items.length} ${options.entity} records:`));\n console.log(JSON.stringify(result.data, null, 2));\n },\n });\n } catch (error) {\n exitWithCommandError(spinner, \"Failed to bulk update entities\", error);\n }\n}\n\nexport async function bulkDeleteEntities(\n client: AmasterClient,\n options: { namespace: string; entity: string; ids?: string; format?: string }\n) {\n const spinner = createSpinner(`Bulk deleting ${options.entity}...`, options.format);\n\n try {\n const entityClient = client.entity as any;\n const ids = await loadIdsInput(options.ids);\n const result = await entityClient.bulkDelete(options.namespace, options.entity, ids);\n\n if (result.error) {\n spinner.fail(\"Failed to bulk delete entities\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(`Deleted ${ids.length} entities`);\n renderOutput(\n {\n namespace: options.namespace,\n entity: options.entity,\n ids,\n deleted: true,\n count: ids.length,\n },\n {\n format: options.format,\n pretty: () => {\n console.log(chalk.green(`\\nDeleted ${ids.length} ${options.entity} records.`));\n },\n }\n );\n } catch (error) {\n exitWithCommandError(spinner, \"Failed to bulk delete entities\", error);\n }\n}\n\nexport async function listEntityTypes(\n client: AmasterClient,\n options: { namespace: string; format?: string }\n) {\n const spinner = createSpinner(\"Fetching entity types...\", options.format);\n\n try {\n const entityClient = client.entity as any;\n const result = await entityClient.getEntityTypes(options.namespace);\n\n if (result.error) {\n spinner.fail(\"Failed to fetch entity types\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(`Found ${result.data?.length || 0} entity types`);\n\n const types = result.data || [];\n renderOutput(types, {\n format: options.format,\n pretty: () => {\n console.log(chalk.blue(`\\n📋 Entity Types in ${options.namespace}\\n`));\n\n for (const type of types) {\n console.log(` ${chalk.green(\"•\")} ${chalk.bold(type.code)}`);\n console.log(` ${chalk.gray(\"Name:\")} ${type.name || \"N/A\"}`);\n console.log(` ${chalk.gray(\"Description:\")} ${type.description || \"N/A\"}`);\n console.log();\n }\n },\n });\n } catch (error) {\n exitWithCommandError(spinner, \"Failed to fetch entity types\", error);\n }\n}\n","import chalk from \"chalk\";\nimport type { AmasterClient } from \"@amaster.ai/client\";\nimport { createSpinner, renderOutput } from \"../output.js\";\n\nexport async function listProcesses(client: AmasterClient, options: { format?: string } = {}) {\n const spinner = createSpinner(\"Fetching process definitions...\", options.format);\n\n try {\n const bpmClient = client.bpm as any;\n const result = await bpmClient.getProcessDefinitions();\n\n if (result.error) {\n spinner.fail(\"Failed to fetch processes\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(`Found ${result.data?.length || 0} process definitions`);\n\n const processes = result.data || [];\n renderOutput(processes, {\n format: options.format,\n pretty: () => {\n console.log(chalk.blue(\"\\n📊 Process Definitions\\n\"));\n\n for (const proc of processes) {\n console.log(` ${chalk.green(\"•\")} ${chalk.bold(proc.key)}`);\n console.log(` ${chalk.gray(\"Name:\")} ${proc.name || \"N/A\"}`);\n console.log(` ${chalk.gray(\"Version:\")} ${proc.version || \"N/A\"}`);\n console.log();\n }\n },\n });\n } catch (error) {\n spinner.fail(\"Failed to fetch processes\");\n throw error;\n }\n}\n\nexport async function startProcess(\n client: AmasterClient,\n options: { key: string; variables?: string; format?: string }\n) {\n const spinner = createSpinner(`Starting process: ${options.key}...`, options.format);\n\n try {\n const bpmClient = client.bpm as any;\n const variables = options.variables ? JSON.parse(options.variables) : {};\n\n const result = await bpmClient.startProcess({\n processKey: options.key,\n variables,\n });\n\n if (result.error) {\n spinner.fail(\"Failed to start process\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Process started\");\n renderOutput(result.data, {\n format: options.format,\n pretty: () => {\n console.log(chalk.green(\"\\nProcess Instance:\"));\n console.log(` ${chalk.bold(\"ID:\")} ${result.data?.id}`);\n console.log(` ${chalk.bold(\"Definition ID:\")} ${result.data?.definitionId}`);\n console.log(` ${chalk.bold(\"Business Key:\")} ${result.data?.businessKey || \"N/A\"}`);\n console.log(` ${chalk.bold(\"Status:\")} ${result.data?.suspended ? \"Suspended\" : \"Active\"}`);\n },\n });\n } catch (error) {\n spinner.fail(\"Failed to start process\");\n throw error;\n }\n}\n\nexport async function listTasks(\n client: AmasterClient,\n options: { assignee?: string; format?: string }\n) {\n const spinner = createSpinner(\"Fetching tasks...\", options.format);\n\n try {\n const bpmClient = client.bpm as any;\n const params: { assignee?: string } = {};\n if (options.assignee) {\n params.assignee = options.assignee;\n }\n\n const result = await bpmClient.getMyTasks(params);\n\n if (result.error) {\n spinner.fail(\"Failed to fetch tasks\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(`Found ${result.data?.length || 0} tasks`);\n\n const tasks = result.data || [];\n renderOutput(tasks, {\n format: options.format,\n pretty: () => {\n console.log(chalk.blue(\"\\n📝 Tasks\\n\"));\n\n for (const task of tasks) {\n console.log(` ${chalk.green(\"•\")} ${chalk.bold(task.name || task.id)}`);\n console.log(` ${chalk.gray(\"ID:\")} ${task.id}`);\n console.log(` ${chalk.gray(\"Assignee:\")} ${task.assignee || \"Unassigned\"}`);\n console.log(` ${chalk.gray(\"Created:\")} ${task.created || \"N/A\"}`);\n console.log();\n }\n },\n });\n } catch (error) {\n spinner.fail(\"Failed to fetch tasks\");\n throw error;\n }\n}\n\nexport async function completeTask(\n client: AmasterClient,\n options: { id: string; variables?: string; format?: string }\n) {\n const spinner = createSpinner(`Completing task: ${options.id}...`, options.format);\n\n try {\n const bpmClient = client.bpm as any;\n const variables = options.variables ? JSON.parse(options.variables) : {};\n\n const result = await bpmClient.completeTask(options.id, { variables });\n\n if (result.error) {\n spinner.fail(\"Failed to complete task\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Task completed\");\n renderOutput(\n {\n id: options.id,\n completed: true,\n },\n {\n format: options.format,\n pretty: () => {\n console.log(chalk.green(`Completed task: ${options.id}`));\n },\n }\n );\n } catch (error) {\n spinner.fail(\"Failed to complete task\");\n throw error;\n }\n}\n\nexport async function claimTask(\n client: AmasterClient,\n options: { id: string; assignee: string; format?: string }\n) {\n const spinner = createSpinner(`Claiming task: ${options.id}...`, options.format);\n\n try {\n const bpmClient = client.bpm as any;\n const result = await bpmClient.claimTask(options.id, options.assignee);\n\n if (result.error) {\n spinner.fail(\"Failed to claim task\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Task claimed\");\n renderOutput(\n {\n id: options.id,\n assignee: options.assignee,\n claimed: true,\n },\n {\n format: options.format,\n pretty: () => {\n console.log(chalk.green(`Claimed task ${options.id} for ${options.assignee}`));\n },\n }\n );\n } catch (error) {\n spinner.fail(\"Failed to claim task\");\n throw error;\n }\n}\n\nexport async function getProcessInstance(\n client: AmasterClient,\n options: { id: string; format?: string }\n) {\n const spinner = createSpinner(\"Fetching process instance...\", options.format);\n\n try {\n const bpmClient = client.bpm as any;\n const result = await bpmClient.getProcessInstance(options.id);\n\n if (result.error) {\n spinner.fail(\"Failed to fetch process instance\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Process instance retrieved\");\n\n renderOutput(result.data, {\n format: options.format,\n pretty: () => {\n console.log(chalk.blue(\"\\n📊 Process Instance\\n\"));\n console.log(JSON.stringify(result.data, null, 2));\n },\n });\n } catch (error) {\n spinner.fail(\"Failed to fetch process instance\");\n throw error;\n }\n}\n\nexport async function listProcessInstances(\n client: AmasterClient,\n options: { format?: string } = {}\n) {\n const spinner = createSpinner(\"Fetching process instances...\", options.format);\n\n try {\n const bpmClient = client.bpm as any;\n const result = await bpmClient.getProcessInstances();\n\n if (result.error) {\n spinner.fail(\"Failed to fetch process instances\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(`Found ${result.data?.length || 0} process instances`);\n\n const instances = result.data || [];\n renderOutput(instances, {\n format: options.format,\n pretty: () => {\n console.log(chalk.blue(\"\\n🔄 Process Instances\\n\"));\n\n for (const instance of instances) {\n console.log(` ${chalk.green(\"•\")} ${chalk.bold(instance.id)}`);\n console.log(` ${chalk.gray(\"Definition:\")} ${instance.definitionId}`);\n console.log(\n ` ${chalk.gray(\"Status:\")} ${instance.ended ? \"Ended\" : instance.suspended ? \"Suspended\" : \"Active\"}`\n );\n console.log();\n }\n },\n });\n } catch (error) {\n spinner.fail(\"Failed to fetch process instances\");\n throw error;\n }\n}\n","import chalk from \"chalk\";\nimport type { AmasterClient } from \"@amaster.ai/client\";\nimport { createSpinner, renderOutput } from \"../output.js\";\n\nexport async function listWorkflows(client: AmasterClient, options: { format?: string } = {}) {\n const spinner = createSpinner(\"Fetching workflows...\", options.format);\n\n try {\n const workflowClient = client.workflow as any;\n const result = await workflowClient.listWorkflows();\n\n if (result.error) {\n spinner.fail(\"Failed to fetch workflows\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(`Found ${result.data?.length || 0} workflows`);\n\n const workflows = result.data || [];\n renderOutput(workflows, {\n format: options.format,\n pretty: () => {\n console.log(chalk.blue(\"\\n⚡ Workflows\\n\"));\n\n for (const workflow of workflows) {\n console.log(` ${chalk.green(\"•\")} ${chalk.bold(workflow.code || workflow.id)}`);\n console.log(` ${chalk.gray(\"Name:\")} ${workflow.name || \"N/A\"}`);\n console.log(` ${chalk.gray(\"Description:\")} ${workflow.description || \"N/A\"}`);\n console.log(` ${chalk.gray(\"Status:\")} ${workflow.status || \"N/A\"}`);\n console.log();\n }\n },\n });\n } catch (error) {\n spinner.fail(\"Failed to fetch workflows\");\n throw error;\n }\n}\n\nexport async function executeWorkflow(\n client: AmasterClient,\n options: { id: string; input?: string; version?: string; format?: string }\n) {\n const spinner = createSpinner(`Executing workflow: ${options.id}...`, options.format);\n\n try {\n const workflowClient = client.workflow as any;\n const input = options.input ? JSON.parse(options.input) : {};\n\n const result = await workflowClient.execute(options.id, {\n input,\n version: options.version,\n });\n\n if (result.error) {\n spinner.fail(\"Failed to execute workflow\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Workflow executed\");\n renderOutput(result.data, {\n format: options.format,\n pretty: () => {\n console.log(chalk.green(\"\\nExecution Result:\"));\n console.log(JSON.stringify(result.data, null, 2));\n },\n });\n } catch (error) {\n spinner.fail(\"Failed to execute workflow\");\n throw error;\n }\n}\n\nexport async function getWorkflow(client: AmasterClient, options: { id: string; format?: string }) {\n const spinner = createSpinner(\"Fetching workflow...\", options.format);\n\n try {\n const workflowClient = client.workflow as any;\n const result = await workflowClient.getWorkflow(options.id);\n\n if (result.error) {\n spinner.fail(\"Failed to fetch workflow\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Workflow retrieved\");\n\n renderOutput(result.data, {\n format: options.format,\n pretty: () => {\n console.log(chalk.blue(\"\\n⚡ Workflow\\n\"));\n console.log(JSON.stringify(result.data, null, 2));\n },\n });\n } catch (error) {\n spinner.fail(\"Failed to fetch workflow\");\n throw error;\n }\n}\n\nexport async function listWorkflowExecutions(\n client: AmasterClient,\n options: { workflowId?: string; page?: number; pageSize?: number; format?: string }\n) {\n const spinner = createSpinner(\"Fetching workflow executions...\", options.format);\n\n try {\n const workflowClient = client.workflow as any;\n const result = await workflowClient.listExecutions({\n workflowId: options.workflowId,\n page: options.page || 1,\n pageSize: options.pageSize || 10,\n });\n\n if (result.error) {\n spinner.fail(\"Failed to fetch executions\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(`Found ${result.data?.total || 0} executions`);\n\n const executions = result.data?.list || [];\n renderOutput(result.data, {\n format: options.format,\n pretty: () => {\n console.log(chalk.blue(\"\\n🔄 Workflow Executions\\n\"));\n\n for (const execution of executions) {\n console.log(` ${chalk.green(\"•\")} ${chalk.bold(execution.id)}`);\n console.log(` ${chalk.gray(\"Workflow:\")} ${execution.workflowId}`);\n console.log(` ${chalk.gray(\"Status:\")} ${execution.status || \"N/A\"}`);\n console.log(` ${chalk.gray(\"Started:\")} ${execution.startedAt || \"N/A\"}`);\n console.log();\n }\n },\n });\n } catch (error) {\n spinner.fail(\"Failed to fetch executions\");\n throw error;\n }\n}\n\nexport async function getExecution(client: AmasterClient, options: { id: string; format?: string }) {\n const spinner = createSpinner(\"Fetching execution...\", options.format);\n\n try {\n const workflowClient = client.workflow as any;\n const result = await workflowClient.getExecution(options.id);\n\n if (result.error) {\n spinner.fail(\"Failed to fetch execution\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Execution retrieved\");\n\n renderOutput(result.data, {\n format: options.format,\n pretty: () => {\n console.log(chalk.blue(\"\\n🔄 Execution\\n\"));\n console.log(JSON.stringify(result.data, null, 2));\n },\n });\n } catch (error) {\n spinner.fail(\"Failed to fetch execution\");\n throw error;\n }\n}\n","import chalk from \"chalk\";\nimport { existsSync } from \"fs\";\nimport { resolve } from \"path\";\nimport type { AmasterClient } from \"@amaster.ai/client\";\nimport { createSpinner, renderOutput } from \"../output.js\";\n\nexport async function uploadFile(\n client: AmasterClient,\n options: { file: string; key?: string; bucket?: string; public?: boolean; format?: string }\n) {\n const spinner = createSpinner(\"Uploading file...\", options.format);\n\n try {\n const s3Client = client.s3 as any;\n const filePath = resolve(options.file);\n\n if (!existsSync(filePath)) {\n spinner.fail(`File not found: ${options.file}`);\n process.exit(1);\n }\n\n const result = await s3Client.uploadFile(filePath, {\n key: options.key,\n bucket: options.bucket,\n isPublic: options.public,\n });\n\n if (result.error) {\n spinner.fail(\"Upload failed\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Upload complete\");\n renderOutput(result.data, {\n format: options.format,\n pretty: () => {\n console.log(chalk.green(\"\\nFile uploaded:\"));\n console.log(` ${chalk.bold(\"Key:\")} ${result.data?.key}`);\n console.log(` ${chalk.bold(\"URL:\")} ${result.data?.url || \"N/A\"}`);\n console.log(` ${chalk.bold(\"Bucket:\")} ${result.data?.bucket || options.bucket || \"default\"}`);\n },\n });\n } catch (error) {\n spinner.fail(\"Upload failed\");\n throw error;\n }\n}\n\nexport async function downloadFile(\n client: AmasterClient,\n options: { key: string; output: string; bucket?: string; format?: string }\n) {\n const spinner = createSpinner(\"Downloading file...\", options.format);\n\n try {\n const s3Client = client.s3 as any;\n const result = await s3Client.downloadFile(options.key, options.output, {\n bucket: options.bucket,\n });\n\n if (result.error) {\n spinner.fail(\"Download failed\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"Download complete\");\n renderOutput(\n {\n key: options.key,\n output: options.output,\n bucket: options.bucket ?? null,\n downloaded: true,\n },\n {\n format: options.format,\n pretty: () => {\n console.log(chalk.green(`\\nFile saved to: ${options.output}`));\n },\n }\n );\n } catch (error) {\n spinner.fail(\"Download failed\");\n throw error;\n }\n}\n\nexport async function listFiles(\n client: AmasterClient,\n options: { bucket?: string; prefix?: string; page?: number; pageSize?: number; format?: string }\n) {\n const spinner = createSpinner(\"Fetching files...\", options.format);\n\n try {\n const s3Client = client.s3 as any;\n const result = await s3Client.listFiles({\n bucket: options.bucket,\n prefix: options.prefix,\n page: options.page || 1,\n pageSize: options.pageSize || 10,\n });\n\n if (result.error) {\n spinner.fail(\"Failed to fetch files\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(`Found ${result.data?.total || 0} files`);\n\n const files = result.data?.list || [];\n renderOutput(result.data, {\n format: options.format,\n pretty: () => {\n console.log(chalk.blue(`\\n📁 Files${options.bucket ? ` in ${options.bucket}` : \"\"}\\n`));\n\n for (const file of files) {\n console.log(` ${chalk.green(\"•\")} ${chalk.bold(file.key)}`);\n console.log(` ${chalk.gray(\"Size:\")} ${formatBytes(file.size || 0)}`);\n console.log(` ${chalk.gray(\"Modified:\")} ${file.lastModified || \"N/A\"}`);\n console.log();\n }\n },\n });\n } catch (error) {\n spinner.fail(\"Failed to fetch files\");\n throw error;\n }\n}\n\nexport async function deleteFile(\n client: AmasterClient,\n options: { key: string; bucket?: string; format?: string }\n) {\n const spinner = createSpinner(\"Deleting file...\", options.format);\n\n try {\n const s3Client = client.s3 as any;\n const result = await s3Client.deleteFile(options.key, {\n bucket: options.bucket,\n });\n\n if (result.error) {\n spinner.fail(\"Delete failed\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"File deleted\");\n renderOutput(\n {\n key: options.key,\n bucket: options.bucket ?? null,\n deleted: true,\n },\n {\n format: options.format,\n pretty: () => {\n console.log(chalk.green(`\\nDeleted: ${options.key}`));\n },\n }\n );\n } catch (error) {\n spinner.fail(\"Delete failed\");\n throw error;\n }\n}\n\nexport async function getFileUrl(\n client: AmasterClient,\n options: { key: string; bucket?: string; expires?: number; format?: string }\n) {\n const spinner = createSpinner(\"Generating URL...\", options.format);\n\n try {\n const s3Client = client.s3 as any;\n const result = await s3Client.getFileUrl(options.key, {\n bucket: options.bucket,\n expires: options.expires,\n });\n\n if (result.error) {\n spinner.fail(\"Failed to generate URL\");\n console.error(chalk.red(result.error.message));\n process.exit(1);\n }\n\n spinner.succeed(\"URL generated\");\n renderOutput(result.data, {\n format: options.format,\n pretty: () => {\n console.log(chalk.green(\"\\nFile URL:\"));\n console.log(` ${result.data?.url}`);\n if (result.data?.expires) {\n console.log(chalk.gray(` Expires: ${new Date(result.data.expires).toLocaleString()}`));\n }\n },\n });\n } catch (error) {\n spinner.fail(\"Failed to generate URL\");\n throw error;\n }\n}\n\nfunction formatBytes(bytes: number): string {\n if (bytes === 0) return \"0 B\";\n const k = 1024;\n const sizes = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + \" \" + sizes[i];\n}\n","import { existsSync, mkdirSync, readFileSync, writeFileSync, rmSync } from \"fs\";\nimport { join } from \"path\";\nimport { homedir } from \"os\";\nimport chalk from \"chalk\";\nimport yaml from \"yaml\";\nimport { addApp, getAppConfig, listApps } from \"../config.js\";\nimport { createSpinner, isPrettyOutput, renderOutput } from \"../output.js\";\n\nconst OPENCLAW_CONFIG_DIR = join(homedir(), \".openclaw\");\nconst OPENCLAW_CONFIG_FILE = join(OPENCLAW_CONFIG_DIR, \"config.json\");\nconst OPENCLAW_SKILLS_DIR = join(OPENCLAW_CONFIG_DIR, \"skills\");\nconst DEFAULT_OSS_ENDPOINT = \"https://amaster.oss-cn-hangzhou.aliyuncs.com\";\n\ninterface SkillManifest {\n id: string;\n name: string;\n description: string;\n version: string;\n content?: string;\n}\n\ninterface McpServerConfig {\n command: string;\n args?: string[];\n env?: Record<string, string>;\n}\n\nfunction getOpenClawConfig(): { mcpServers?: Record<string, McpServerConfig> } {\n if (existsSync(OPENCLAW_CONFIG_FILE)) {\n return JSON.parse(readFileSync(OPENCLAW_CONFIG_FILE, \"utf-8\"));\n }\n return {};\n}\n\nfunction saveOpenClawConfig(config: { mcpServers?: Record<string, McpServerConfig> }): void {\n if (!existsSync(OPENCLAW_CONFIG_DIR)) {\n mkdirSync(OPENCLAW_CONFIG_DIR, { recursive: true });\n }\n writeFileSync(OPENCLAW_CONFIG_FILE, JSON.stringify(config, null, 2));\n}\n\nfunction getAppSkillsPath(appCode: string): string {\n return `/openclaw/apps/${appCode}/skills`;\n}\n\nfunction getAppMcpConfigPath(appCode: string): string {\n return `/openclaw/apps/${appCode}/mcp-config.yaml`;\n}\n\nexport async function initOpenClaw(options: {\n appCode: string;\n baseURL: string;\n apiKey?: string;\n ossEndpoint?: string;\n force?: boolean;\n format?: string;\n}): Promise<void> {\n const spinner = createSpinner(`Initializing app: ${options.appCode}...`, options.format);\n const pretty = isPrettyOutput(options.format);\n const ossEndpoint = options.ossEndpoint || DEFAULT_OSS_ENDPOINT;\n let installedSkills = 0;\n let configuredMcpServers = 0;\n let skillsError: string | null = null;\n let mcpError: string | null = null;\n const openClawDetected = existsSync(OPENCLAW_CONFIG_DIR);\n\n try {\n // Check if app already exists\n const existingConfig = getAppConfig(options.appCode);\n if (existingConfig && !options.force) {\n spinner.fail(`App already exists: ${options.appCode}`);\n console.log(chalk.yellow(`Use --force to reinitialize`));\n console.log(chalk.gray(`Current URL: ${existingConfig.baseURL}`));\n process.exit(1);\n }\n\n // Save app config first (before OpenClaw check)\n addApp(options.appCode, {\n baseURL: options.baseURL,\n ossEndpoint,\n initializedAt: new Date().toISOString(),\n });\n\n if (!openClawDetected) {\n spinner.succeed(`App initialized: ${options.appCode}`);\n if (pretty) {\n console.log(chalk.yellow(\"\\n⚠️ OpenClaw not detected, skipping skill download\"));\n console.log(chalk.gray(\" Install OpenClaw: npm install -g openclaw\"));\n } else {\n renderOutput(\n {\n appCode: options.appCode,\n baseURL: options.baseURL,\n ossEndpoint,\n openClawDetected: false,\n installedSkills: 0,\n configuredMcpServers: 0,\n },\n { format: options.format }\n );\n }\n return;\n }\n\n spinner.succeed(`App initialized: ${options.appCode}`);\n if (pretty) {\n console.log(chalk.blue(\"\\n📋 Configuration:\\n\"));\n console.log(` App Code: ${chalk.green(options.appCode)}`);\n console.log(` Base URL: ${chalk.gray(options.baseURL)}`);\n console.log();\n }\n\n // Download and install skills\n spinner.start(\"Downloading skills...\");\n \n try {\n const skills = await downloadSkillManifest(ossEndpoint, options.appCode);\n\n if (skills.length === 0) {\n spinner.warn(\"No skills found\");\n } else {\n installedSkills = skills.length;\n spinner.text = `Installing ${skills.length} skills...`;\n const appSkillsDir = join(OPENCLAW_SKILLS_DIR, options.appCode);\n\n if (options.force && existsSync(appSkillsDir)) {\n rmSync(appSkillsDir, { recursive: true, force: true });\n }\n\n if (!existsSync(appSkillsDir)) {\n mkdirSync(appSkillsDir, { recursive: true });\n }\n\n for (const skill of skills) {\n spinner.text = `Installing: ${skill.name}...`;\n await downloadSkill(skill, ossEndpoint, options.appCode, appSkillsDir);\n }\n spinner.succeed(`Installed ${skills.length} skills`);\n }\n } catch (error) {\n skillsError = error instanceof Error ? error.message : String(error);\n spinner.warn(\"Skills download failed (optional)\");\n }\n\n // Configure MCP servers\n spinner.start(\"Configuring MCP servers...\");\n try {\n const mcpServers = await downloadMcpConfig(ossEndpoint, options.appCode);\n\n if (Object.keys(mcpServers).length > 0) {\n configuredMcpServers = Object.keys(mcpServers).length;\n const openClawConfig = getOpenClawConfig();\n\n if (!openClawConfig.mcpServers) {\n openClawConfig.mcpServers = {};\n }\n\n for (const [name, config] of Object.entries(mcpServers)) {\n openClawConfig.mcpServers[`${options.appCode}-${name}`] = config;\n }\n\n saveOpenClawConfig(openClawConfig);\n spinner.succeed(`Configured ${Object.keys(mcpServers).length} MCP servers`);\n } else {\n spinner.succeed(\"No MCP servers to configure\");\n }\n } catch (error) {\n mcpError = error instanceof Error ? error.message : String(error);\n spinner.warn(\"MCP configuration failed (optional)\");\n }\n\n const apps = listApps();\n const configuredApps = apps.map((app) => {\n const config = getAppConfig(app);\n return {\n appCode: app,\n baseURL: config?.baseURL || null,\n };\n });\n\n const summary = {\n appCode: options.appCode,\n baseURL: options.baseURL,\n ossEndpoint,\n openClawDetected: true,\n installedSkills,\n configuredMcpServers,\n configuredApps,\n warnings: {\n skills: skillsError,\n mcpServers: mcpError,\n },\n };\n\n if (pretty) {\n console.log();\n console.log(chalk.green(\"✅ Initialization complete!\"));\n console.log();\n console.log(`Next step: Login to your app`);\n console.log(chalk.gray(` amaster login --app ${options.appCode}`));\n console.log();\n\n if (apps.length > 1) {\n console.log(chalk.blue(\"Configured apps:\"));\n for (const app of apps) {\n const config = getAppConfig(app);\n console.log(` ${chalk.gray(\"•\")} ${app} - ${config?.baseURL}`);\n }\n console.log();\n }\n\n return;\n }\n\n renderOutput(summary, { format: options.format });\n } catch (error) {\n spinner.fail(\"Initialization failed\");\n throw error;\n }\n}\n\nasync function downloadSkillManifest(ossEndpoint: string, appCode: string): Promise<SkillManifest[]> {\n const manifestUrl = `${ossEndpoint}${getAppSkillsPath(appCode)}/manifest.json`;\n\n try {\n const response = await fetch(manifestUrl);\n if (!response.ok) {\n if (response.status === 404) {\n return [];\n }\n throw new Error(`Failed to download manifest: ${response.statusText}`);\n }\n return (await response.json()) as SkillManifest[];\n } catch (error) {\n if (error instanceof Error && error.message.includes(\"404\")) {\n return [];\n }\n throw error;\n }\n}\n\nasync function downloadSkill(\n skill: SkillManifest, \n ossEndpoint: string, \n appCode: string, \n targetDir: string\n): Promise<void> {\n const skillUrl = `${ossEndpoint}${getAppSkillsPath(appCode)}/${skill.id}.zip`;\n\n try {\n const response = await fetch(skillUrl);\n if (!response.ok) {\n throw new Error(`Failed to download skill ${skill.id}: ${response.statusText}`);\n }\n\n const skillDir = join(targetDir, skill.id);\n if (!existsSync(skillDir)) {\n mkdirSync(skillDir, { recursive: true });\n }\n\n await response.arrayBuffer();\n\n // Create SKILL.md\n const skillContent = skill.content || generateSkillContent(skill, appCode);\n writeFileSync(join(skillDir, \"SKILL.md\"), skillContent);\n\n // Create metadata\n writeFileSync(\n join(skillDir, \".amaster-meta.json\"),\n JSON.stringify(\n {\n id: skill.id,\n name: skill.name,\n version: skill.version,\n appCode,\n installedAt: new Date().toISOString(),\n },\n null,\n 2\n )\n );\n } catch (error) {\n throw new Error(`Failed to download skill ${skill.id}: ${error instanceof Error ? error.message : error}`);\n }\n}\n\nfunction generateSkillContent(skill: SkillManifest, appCode: string): string {\n return `---\nname: ${skill.name}\ndescription: ${skill.description}\nmetadata:\n appCode: ${appCode}\n---\n\n# ${skill.name}\n\n${skill.description}\n\n## Usage\n\nThis skill is configured for application: **${appCode}**\n`;\n}\n\nasync function downloadMcpConfig(\n ossEndpoint: string, \n appCode: string\n): Promise<Record<string, McpServerConfig>> {\n const configUrl = `${ossEndpoint}${getAppMcpConfigPath(appCode)}`;\n\n try {\n const response = await fetch(configUrl);\n if (!response.ok) {\n if (response.status === 404) {\n return {};\n }\n throw new Error(`Failed to download MCP config: ${response.statusText}`);\n }\n const content = await response.text();\n const parsed = yaml.parse(content);\n return parsed.mcpServers || {};\n } catch (error) {\n if (error instanceof Error && error.message.includes(\"404\")) {\n return {};\n }\n throw error;\n }\n}\n"]}