@agentrun/sdk 0.0.3 → 0.0.4

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.
Files changed (130) hide show
  1. package/README.md +20 -15
  2. package/dist/agent-runtime/api/index.cjs +907 -0
  3. package/dist/agent-runtime/api/index.cjs.map +1 -0
  4. package/dist/agent-runtime/api/index.d.cts +193 -0
  5. package/dist/agent-runtime/api/index.d.ts +193 -0
  6. package/dist/agent-runtime/api/index.js +882 -0
  7. package/dist/agent-runtime/api/index.js.map +1 -0
  8. package/dist/agent-runtime/index.cjs +2528 -0
  9. package/dist/agent-runtime/index.cjs.map +1 -0
  10. package/dist/agent-runtime/index.d.cts +778 -0
  11. package/dist/agent-runtime/index.d.ts +778 -0
  12. package/dist/agent-runtime/index.js +2496 -0
  13. package/dist/agent-runtime/index.js.map +1 -0
  14. package/dist/base-K1GMfJbH.d.ts +59 -0
  15. package/dist/base-xcWt5bua.d.cts +59 -0
  16. package/dist/client-DHXxjuo3.d.ts +58 -0
  17. package/dist/client-DPUTs69s.d.cts +58 -0
  18. package/dist/config-07gMelJP.d.cts +125 -0
  19. package/dist/config-07gMelJP.d.ts +125 -0
  20. package/dist/control-api-BWD4eua5.d.cts +27 -0
  21. package/dist/control-api-d-82Sgpr.d.ts +27 -0
  22. package/dist/credential/api/index.cjs +655 -0
  23. package/dist/credential/api/index.cjs.map +1 -0
  24. package/dist/credential/api/index.d.cts +93 -0
  25. package/dist/credential/api/index.d.ts +93 -0
  26. package/dist/credential/api/index.js +630 -0
  27. package/dist/credential/api/index.js.map +1 -0
  28. package/dist/credential/index.cjs +1286 -0
  29. package/dist/credential/index.cjs.map +1 -0
  30. package/dist/credential/index.d.cts +246 -0
  31. package/dist/credential/index.d.ts +246 -0
  32. package/dist/credential/index.js +1263 -0
  33. package/dist/credential/index.js.map +1 -0
  34. package/dist/data-api-B-4h9_Vf.d.ts +166 -0
  35. package/dist/data-api-DsG-8JRQ.d.cts +166 -0
  36. package/dist/exception-DM9H2Rpo.d.cts +68 -0
  37. package/dist/exception-DM9H2Rpo.d.ts +68 -0
  38. package/dist/index.cjs +29281 -1427
  39. package/dist/index.cjs.map +1 -1
  40. package/dist/index.d.cts +38 -4485
  41. package/dist/index.d.ts +38 -4485
  42. package/dist/index.js +29259 -1426
  43. package/dist/index.js.map +1 -1
  44. package/dist/integration/builtin/index.cjs +9399 -0
  45. package/dist/integration/builtin/index.cjs.map +1 -0
  46. package/dist/integration/builtin/index.d.cts +692 -0
  47. package/dist/integration/builtin/index.d.ts +692 -0
  48. package/dist/integration/builtin/index.js +9363 -0
  49. package/dist/integration/builtin/index.js.map +1 -0
  50. package/dist/integration/index.cjs +9524 -0
  51. package/dist/integration/index.cjs.map +1 -0
  52. package/dist/integration/index.d.cts +98 -0
  53. package/dist/integration/index.d.ts +98 -0
  54. package/dist/integration/index.js +9481 -0
  55. package/dist/integration/index.js.map +1 -0
  56. package/dist/integration/mastra/index.cjs +9383 -0
  57. package/dist/integration/mastra/index.cjs.map +1 -0
  58. package/dist/integration/mastra/index.d.cts +186 -0
  59. package/dist/integration/mastra/index.d.ts +186 -0
  60. package/dist/integration/mastra/index.js +9348 -0
  61. package/dist/integration/mastra/index.js.map +1 -0
  62. package/dist/model/index.cjs +2392 -0
  63. package/dist/model/index.cjs.map +1 -0
  64. package/dist/model/index.d.cts +97 -0
  65. package/dist/model/index.d.ts +97 -0
  66. package/dist/model/index.js +2368 -0
  67. package/dist/model/index.js.map +1 -0
  68. package/dist/model--I90nCqy.d.cts +66 -0
  69. package/dist/model--I90nCqy.d.ts +66 -0
  70. package/dist/model-BV7A6Trb.d.cts +512 -0
  71. package/dist/model-DGBy-o_L.d.cts +176 -0
  72. package/dist/model-DGBy-o_L.d.ts +176 -0
  73. package/dist/model-RiiiZnou.d.ts +512 -0
  74. package/dist/model-service-D-P2FZNi.d.ts +540 -0
  75. package/dist/model-service-VpzBb7rV.d.cts +540 -0
  76. package/dist/resource-CQovFUeh.d.cts +44 -0
  77. package/dist/resource-DnE_DEka.d.ts +44 -0
  78. package/dist/sandbox/index.cjs +3557 -0
  79. package/dist/sandbox/index.cjs.map +1 -0
  80. package/dist/sandbox/index.d.cts +1598 -0
  81. package/dist/sandbox/index.d.ts +1598 -0
  82. package/dist/sandbox/index.js +3532 -0
  83. package/dist/sandbox/index.js.map +1 -0
  84. package/dist/server/adapter/index.cjs +24886 -0
  85. package/dist/server/adapter/index.cjs.map +1 -0
  86. package/dist/server/adapter/index.d.cts +68 -0
  87. package/dist/server/adapter/index.d.ts +68 -0
  88. package/dist/server/adapter/index.js +24883 -0
  89. package/dist/server/adapter/index.js.map +1 -0
  90. package/dist/server/core/index.cjs +313 -0
  91. package/dist/server/core/index.cjs.map +1 -0
  92. package/dist/server/core/index.d.cts +58 -0
  93. package/dist/server/core/index.d.ts +58 -0
  94. package/dist/server/core/index.js +309 -0
  95. package/dist/server/core/index.js.map +1 -0
  96. package/dist/server/index.cjs +25098 -0
  97. package/dist/server/index.cjs.map +1 -0
  98. package/dist/server/index.d.cts +73 -0
  99. package/dist/server/index.d.ts +73 -0
  100. package/dist/server/index.js +25067 -0
  101. package/dist/server/index.js.map +1 -0
  102. package/dist/server/protocol/index.cjs +1057 -0
  103. package/dist/server/protocol/index.cjs.map +1 -0
  104. package/dist/server/protocol/index.d.cts +135 -0
  105. package/dist/server/protocol/index.d.ts +135 -0
  106. package/dist/server/protocol/index.js +1053 -0
  107. package/dist/server/protocol/index.js.map +1 -0
  108. package/dist/tool-CG0LY-ov.d.cts +155 -0
  109. package/dist/tool-JJHam0ms.d.ts +155 -0
  110. package/dist/toolset/api/index.cjs +754 -0
  111. package/dist/toolset/api/index.cjs.map +1 -0
  112. package/dist/toolset/api/index.d.cts +207 -0
  113. package/dist/toolset/api/index.d.ts +207 -0
  114. package/dist/toolset/api/index.js +727 -0
  115. package/dist/toolset/api/index.js.map +1 -0
  116. package/dist/toolset/index.cjs +1945 -0
  117. package/dist/toolset/index.cjs.map +1 -0
  118. package/dist/toolset/index.d.cts +182 -0
  119. package/dist/toolset/index.d.ts +182 -0
  120. package/dist/toolset/index.js +1920 -0
  121. package/dist/toolset/index.js.map +1 -0
  122. package/dist/toolset-BYDvhwRp.d.cts +394 -0
  123. package/dist/toolset-CSRsJxCb.d.ts +394 -0
  124. package/dist/utils/index.cjs +994 -0
  125. package/dist/utils/index.cjs.map +1 -0
  126. package/dist/utils/index.d.cts +30 -0
  127. package/dist/utils/index.d.ts +30 -0
  128. package/dist/utils/index.js +951 -0
  129. package/dist/utils/index.js.map +1 -0
  130. package/package.json +65 -13
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/log.ts","../../src/utils/version-check.ts","../../src/utils/config.ts","../../src/utils/exception.ts","../../src/utils/control-api.ts","../../src/model/api/control.ts","../../src/utils/model.ts","../../src/utils/resource.ts","../../src/model/api/model-api.ts","../../src/model/model.ts","../../src/utils/data-api.ts","../../src/utils/index.ts","../../src/credential/api/control.ts","../../src/credential/model.ts","../../src/credential/client.ts","../../src/credential/credential.ts","../../src/model/model-proxy.ts","../../src/model/model-service.ts","../../src/model/client.ts","../../src/model/index.ts"],"names":["fp","dotenv","config","ControlAPI","$AgentRun","$OpenApi","$Util","$AgentRun2","createOpenAICompatible","BackendType","ModelType","Provider","init_model","init_control","$Util2","$AgentRun3","CredentialClient","$AgentRun4","ModelProxy","ModelClient","Credential","_","ModelService","client_exports","init_client","_2","$AgentRun5"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Logging utilities for AgentRun SDK\n *\n * 此模块提供日志功能。\n * This module provides logging utilities.\n */\n\nexport type LogLevel = 'debug' | 'info' | 'warn' | 'error';\n\nconst LOG_LEVELS: Record<LogLevel, number> = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n};\n// concise ANSI color codes we need\nconst COLORS = {\n reset: '\\x1b[0m',\n bright: '\\x1b[1m',\n dim: '\\x1b[2m',\n italic: '\\x1b[3m',\n blue: '\\x1b[34m',\n cyan: '\\x1b[36m',\n yellow: '\\x1b[33m',\n red: '\\x1b[31m',\n};\n\nclass Logger {\n private level: LogLevel = 'info';\n // match Python logger name\n private prefix = 'agentrun-logger';\n\n setLevel(level: LogLevel): void {\n this.level = level;\n }\n\n private shouldLog(level: LogLevel): boolean {\n return LOG_LEVELS[level] >= LOG_LEVELS[this.level];\n }\n\n private getColor(level: LogLevel): string {\n switch (level) {\n case 'debug':\n return COLORS.cyan;\n case 'info':\n return COLORS.blue;\n case 'warn':\n return COLORS.yellow;\n case 'error':\n return COLORS.red;\n default:\n return COLORS.reset;\n }\n }\n\n // format timestamp like Python: YYYY-MM-DD HH:mm:ss,SSS\n private formatTimestamp(d = new Date()): string {\n const pad = (n: number, sz = 2) => n.toString().padStart(sz, '0');\n const year = d.getFullYear();\n const month = pad(d.getMonth() + 1);\n const day = pad(d.getDate());\n const hour = pad(d.getHours());\n const minute = pad(d.getMinutes());\n const second = pad(d.getSeconds());\n const ms = pad(d.getMilliseconds(), 3);\n return `${year}-${month}-${day} ${hour}:${minute}:${second},${ms}`;\n }\n\n // attempt to infer caller file and line by parsing Error.stack\n // helper: parse a single stack frame into {filepath, line, functionName}\n private parseFrame(frame: string) {\n const m = frame.match(/^(?:at\\s+)?(?:(.+?)\\s+\\()?(.*?):(\\d+):(\\d+)\\)?$/);\n if (!m) return null;\n return {\n functionName: m[1] ? m[1].trim() : undefined,\n filepath: m[2],\n line: parseInt(m[3], 10),\n };\n }\n\n // get caller by fixed stack offset (used in public log methods)\n private getCallerByOffset(): { filepath?: string; line?: number } {\n const err = new Error();\n const stack = err.stack;\n if (!stack) return {};\n const lines = stack.split('\\n').map(l => l.trim());\n // try the requested offset, if absent try next few frames\n\n for (let i = 3; i < lines.length; i++) {\n let parsed = this.parseFrame(lines[i]);\n // fallback: try extract /path:line:col substring\n if (!parsed) {\n const m = lines[i].match(/(\\/[^:\\s]+:\\d+:\\d+)/);\n if (m) {\n const parts = m[1].split(':');\n parts.pop(); // col\n const ln = Number(parts.pop());\n const fp = parts.join(':');\n parsed = { filepath: fp, line: ln, functionName: undefined } as any;\n }\n }\n if (!parsed) continue;\n const fp = parsed.filepath;\n if (\n fp.includes('node_modules') ||\n fp.includes('internal') ||\n fp.includes('<anonymous>') ||\n fp.includes('native')\n )\n continue;\n // skip logger internal frames\n return { filepath: parsed.filepath, line: parsed.line };\n }\n // fallback: scan all frames and return first project frame\n const cwd = process.cwd();\n for (let i = 0; i < lines.length; i++) {\n let parsed = this.parseFrame(lines[i]);\n if (!parsed) {\n const m = lines[i].match(/(\\/[^:\\s]+:\\d+:\\d+)/);\n if (m) {\n const parts = m[1].split(':');\n parts.pop(); // col\n const ln = Number(parts.pop());\n const fp = parts.join(':');\n parsed = { filepath: fp, line: ln, functionName: undefined } as any;\n }\n }\n if (!parsed) continue;\n const fp = parsed.filepath;\n if (\n fp.includes('node_modules') ||\n fp.includes('internal') ||\n fp.includes('<anonymous>') ||\n fp.includes('native')\n )\n continue;\n if (fp.includes('/src/utils/log.ts')) continue;\n if (fp.startsWith(cwd)) return { filepath: parsed.filepath, line: parsed.line };\n }\n // final fallback: first non-node_modules parsed frame\n for (let i = 0; i < lines.length; i++) {\n let parsed = this.parseFrame(lines[i]);\n if (!parsed) {\n const m = lines[i].match(/(\\/[^:\\s]+:\\d+:\\d+)/);\n if (m) {\n const parts = m[1].split(':');\n parts.pop(); // col\n const ln = Number(parts.pop());\n const fp = parts.join(':');\n parsed = { filepath: fp, line: ln, functionName: undefined } as any;\n }\n }\n if (!parsed) continue;\n const fp = parsed.filepath;\n if (\n fp.includes('node_modules') ||\n fp.includes('internal') ||\n fp.includes('<anonymous>') ||\n fp.includes('native')\n )\n continue;\n if (fp.includes('/src/utils/log.ts')) continue;\n return { filepath: parsed.filepath, line: parsed.line };\n }\n return {};\n }\n\n private formatMessage(\n level: LogLevel,\n message: string,\n filepath?: string,\n line?: number\n ): string {\n const timestamp = this.formatTimestamp();\n const color = this.getColor(level);\n const reset = COLORS.reset;\n\n // filepath/line should be provided by caller via getCallerByOffset;\n // if missing, leave blank\n\n const levelName = level === 'warn' ? 'WARNING' : level.toUpperCase();\n const levelStr = `${COLORS.bright}${color}${levelName}${reset}`;\n const nameStr = `${color}[${this.prefix}]${reset}`;\n const tsStr = `${color} ${timestamp}${reset}`;\n const pathInfo =\n filepath && line !== undefined\n ? ` ${COLORS.dim}${COLORS.italic}${filepath}:${line}${reset}`\n : '';\n const msg = level === 'debug' ? `${COLORS.dim}${message}${reset}` : message;\n\n return `\\n${levelStr} ${nameStr}${tsStr}${pathInfo}\\n${msg}\\n`;\n }\n\n debug(message: string, ...args: unknown[]): void {\n if (this.shouldLog('debug')) {\n const caller = this.getCallerByOffset();\n console.debug(this.formatMessage('debug', message, caller.filepath, caller.line), ...args);\n }\n }\n\n info(message: string, ...args: unknown[]): void {\n if (this.shouldLog('info')) {\n const caller = this.getCallerByOffset();\n console.info(this.formatMessage('info', message, caller.filepath, caller.line), ...args);\n }\n }\n\n warn(message: string, ...args: unknown[]): void {\n if (this.shouldLog('warn')) {\n const caller = this.getCallerByOffset();\n console.warn(this.formatMessage('warn', message, caller.filepath, caller.line), ...args);\n }\n }\n\n error(message: string, ...args: unknown[]): void {\n if (this.shouldLog('error')) {\n const caller = this.getCallerByOffset();\n console.error(this.formatMessage('error', message, caller.filepath, caller.line), ...args);\n }\n }\n}\n\nexport const logger = new Logger();\nif (\n ![undefined, null, '', 'False', 'FALSE', 'false', '0'].includes(process.env['AGENTRUN_SDK_DEBUG'])\n) {\n logger.setLevel('debug');\n\n if (!(globalThis as any)._AGENTRUN_DEBUG_LOGGED) {\n logger.warn('启用 AgentRun SDK 调试日志, 移除 AGENTRUN_SDK_DEBUG 环境变量以关闭');\n (globalThis as any)._AGENTRUN_DEBUG_LOGGED = true;\n }\n} else {\n logger.setLevel('info');\n}\n","// Version check utility to ensure warning is only shown once globally\ndeclare const __VERSION__: string;\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : '0.0.0-dev';\nimport { logger } from './log';\n\nif (\n !process.env.DISABLE_BREAKING_CHANGES_WARNING &&\n !(globalThis as any)._AGENTRUN_VERSION_WARNING_SHOWN\n) {\n (globalThis as any)._AGENTRUN_VERSION_WARNING_SHOWN = true;\n logger.warn(\n `当前您正在使用 AgentRun Python SDK 版本 ${VERSION}。早期版本通常包含许多新功能,这些功能\\x1b[1;33m 可能引入不兼容的变更 \\x1b[0m。为避免潜在问题,我们强烈建议\\x1b[1;32m 将依赖锁定为此版本 \\x1b[0m。\nYou are currently using AgentRun Python SDK version ${VERSION}. Early versions often include many new features, which\\x1b[1;33m may introduce breaking changes\\x1b[0m. To avoid potential issues, we strongly recommend \\x1b[1;32mpinning the dependency to this version\\x1b[0m.\n\\x1b[2;3m pip install 'agentrun-sdk==${VERSION}' \\x1b[0m\n\n增加\\x1b[2;3m DISABLE_BREAKING_CHANGES_WARNING=1 \\x1b[0m到您的环境变量以关闭此警告。\nAdd\\x1b[2;3m DISABLE_BREAKING_CHANGES_WARNING=1 \\x1b[0mto your environment variables to disable this warning.\n \nReleases:\\x1b[2;3m https://github.com/Serverless-Devs/agentrun-sdk-python/releases\\x1b[0m`\n );\n}\n","/**\n * Configuration Management Module\n *\n * 此模块提供 AgentRun SDK 的全局配置管理功能。\n * This module provides global configuration management for AgentRun SDK.\n */\n\nimport * as dotenv from 'dotenv';\n\n// Load environment variables\ndotenv.config();\n\n/**\n * Get environment variable with fallback keys\n */\nfunction getEnvWithDefault(defaultValue: string, ...keys: string[]): string {\n for (const key of keys) {\n const value = process.env[key];\n if (value !== undefined && value !== '') {\n return value;\n }\n }\n return defaultValue;\n}\n\n/**\n * Configuration options for AgentRun SDK\n */\nexport interface ConfigOptions {\n /**\n * Access Key ID for authentication.\n * Read from AGENTRUN_ACCESS_KEY_ID or ALIBABA_CLOUD_ACCESS_KEY_ID if not provided.\n */\n accessKeyId?: string;\n\n /**\n * Access Key Secret for authentication.\n * Read from AGENTRUN_ACCESS_KEY_SECRET or ALIBABA_CLOUD_ACCESS_KEY_SECRET if not provided.\n */\n accessKeySecret?: string;\n\n /**\n * Security token for STS authentication.\n * Read from AGENTRUN_SECURITY_TOKEN or ALIBABA_CLOUD_SECURITY_TOKEN if not provided.\n */\n securityToken?: string;\n\n /**\n * Account ID.\n * Read from AGENTRUN_ACCOUNT_ID or FC_ACCOUNT_ID if not provided.\n */\n accountId?: string;\n\n /**\n * Custom token for data API calls.\n */\n token?: string;\n\n /**\n * Region ID. Defaults to cn-hangzhou.\n * Read from AGENTRUN_REGION or FC_REGION if not provided.\n */\n regionId?: string;\n\n /**\n * Request timeout in milliseconds. Defaults to 600000 (10 minutes).\n */\n timeout?: number;\n\n /**\n * Read timeout in milliseconds. Defaults to 100000000.\n */\n readTimeout?: number;\n\n /**\n * Custom control API endpoint.\n * Read from AGENTRUN_CONTROL_ENDPOINT if not provided.\n */\n controlEndpoint?: string;\n\n /**\n * Custom data API endpoint.\n * Read from AGENTRUN_DATA_ENDPOINT if not provided.\n */\n dataEndpoint?: string;\n\n /**\n * Custom DevS API endpoint.\n * Read from DEVS_ENDPOINT if not provided.\n */\n devsEndpoint?: string;\n\n /**\n * Custom request headers.\n */\n headers?: Record<string, string>;\n}\n\n/**\n * AgentRun SDK Global Configuration Class\n *\n * 用于管理账号凭证和客户端配置。\n * Used for managing account credentials and client configuration.\n *\n * @example\n * ```typescript\n * // Create config from parameters\n * const config = new Config({\n * accountId: 'your-account-id',\n * accessKeyId: 'your-key-id',\n * accessKeySecret: 'your-secret',\n * });\n *\n * // Or read from environment variables\n * const config = new Config();\n * ```\n */\nexport class Config {\n private _accessKeyId: string;\n private _accessKeySecret: string;\n private _securityToken: string;\n private _accountId: string;\n private _token?: string;\n private _regionId: string;\n private _timeout: number;\n private _readTimeout: number;\n private _controlEndpoint: string;\n private _dataEndpoint: string;\n private _devsEndpoint: string;\n private _headers: Record<string, string>;\n\n constructor(options: ConfigOptions = {}) {\n this._accessKeyId =\n options.accessKeyId ??\n getEnvWithDefault('', 'AGENTRUN_ACCESS_KEY_ID', 'ALIBABA_CLOUD_ACCESS_KEY_ID');\n\n this._accessKeySecret =\n options.accessKeySecret ??\n getEnvWithDefault('', 'AGENTRUN_ACCESS_KEY_SECRET', 'ALIBABA_CLOUD_ACCESS_KEY_SECRET');\n\n this._securityToken =\n options.securityToken ??\n getEnvWithDefault('', 'AGENTRUN_SECURITY_TOKEN', 'ALIBABA_CLOUD_SECURITY_TOKEN');\n\n this._accountId =\n options.accountId ?? getEnvWithDefault('', 'AGENTRUN_ACCOUNT_ID', 'FC_ACCOUNT_ID');\n\n this._token = options.token;\n\n this._regionId =\n options.regionId ?? getEnvWithDefault('cn-hangzhou', 'AGENTRUN_REGION', 'FC_REGION');\n\n this._timeout = options.timeout ?? 600000;\n this._readTimeout = options.readTimeout ?? 100000000;\n\n this._controlEndpoint =\n options.controlEndpoint ?? getEnvWithDefault('', 'AGENTRUN_CONTROL_ENDPOINT');\n\n this._dataEndpoint = options.dataEndpoint ?? getEnvWithDefault('', 'AGENTRUN_DATA_ENDPOINT');\n\n this._devsEndpoint = options.devsEndpoint ?? getEnvWithDefault('', 'DEVS_ENDPOINT');\n\n this._headers = options.headers ?? {};\n }\n\n /**\n * Create a new Config by merging multiple configs.\n * Later configs take precedence.\n */\n static withConfigs(...configs: (Config | undefined)[]): Config {\n return new Config().update(...configs);\n }\n\n /**\n * Update this config with values from other configs.\n * Non-undefined values from later configs take precedence.\n */\n update(...configs: (Config | undefined)[]): Config {\n for (const config of configs) {\n if (!config) continue;\n\n if (config._accessKeyId) this._accessKeyId = config._accessKeyId;\n if (config._accessKeySecret) this._accessKeySecret = config._accessKeySecret;\n if (config._securityToken) this._securityToken = config._securityToken;\n if (config._accountId) this._accountId = config._accountId;\n if (config._token) this._token = config._token;\n if (config._regionId) this._regionId = config._regionId;\n if (config._timeout) this._timeout = config._timeout;\n if (config._readTimeout) this._readTimeout = config._readTimeout;\n if (config._controlEndpoint) this._controlEndpoint = config._controlEndpoint;\n if (config._dataEndpoint) this._dataEndpoint = config._dataEndpoint;\n if (config._devsEndpoint) this._devsEndpoint = config._devsEndpoint;\n if (config._headers && Object.keys(config._headers).length > 0) {\n this._headers = { ...this._headers, ...config._headers };\n }\n }\n return this;\n }\n\n get accessKeyId(): string {\n return this._accessKeyId;\n }\n\n get accessKeySecret(): string {\n return this._accessKeySecret;\n }\n\n get securityToken(): string {\n return this._securityToken;\n }\n\n get accountId(): string {\n if (!this._accountId) {\n throw new Error(\n 'Account ID is not set. Please add AGENTRUN_ACCOUNT_ID environment variable or set it in code.'\n );\n }\n return this._accountId;\n }\n\n get token(): string | undefined {\n return this._token;\n }\n\n get regionId(): string {\n return this._regionId || 'cn-hangzhou';\n }\n\n get timeout(): number {\n return this._timeout || 600000;\n }\n\n get readTimeout(): number {\n return this._readTimeout || 100000000;\n }\n\n get controlEndpoint(): string {\n if (this._controlEndpoint) {\n return this._controlEndpoint;\n }\n return `https://agentrun.${this.regionId}.aliyuncs.com`;\n }\n\n get dataEndpoint(): string {\n if (this._dataEndpoint) {\n return this._dataEndpoint;\n }\n return `https://${this.accountId}.agentrun-data.${this.regionId}.aliyuncs.com`;\n }\n\n get devsEndpoint(): string {\n if (this._devsEndpoint) {\n return this._devsEndpoint;\n }\n return `https://devs.${this.regionId}.aliyuncs.com`;\n }\n\n get headers(): Record<string, string> {\n return this._headers;\n }\n}\n","/**\n * Exception classes for AgentRun SDK\n *\n * 此模块定义 AgentRun SDK 的异常类。\n * This module defines exception classes for AgentRun SDK.\n */\n\n/**\n * Base error class for AgentRun SDK\n */\nexport class AgentRunError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'AgentRunError';\n Object.setPrototypeOf(this, AgentRunError.prototype);\n }\n}\n\n/**\n * HTTP error with status code and request ID\n */\nexport class HTTPError extends AgentRunError {\n readonly statusCode: number;\n readonly requestId?: string;\n readonly errorCode?: string;\n\n constructor(\n statusCode: number,\n message: string,\n options?: {\n requestId?: string;\n errorCode?: string;\n }\n ) {\n super(message);\n this.name = 'HTTPError';\n this.statusCode = statusCode;\n this.requestId = options?.requestId;\n this.errorCode = options?.errorCode;\n Object.setPrototypeOf(this, HTTPError.prototype);\n }\n\n /**\n * Convert HTTP error to resource-specific error based on status code\n */\n toResourceError(resourceType: string, resourceId?: string): HTTPError {\n if (this.statusCode == 404) return new ResourceNotExistError(resourceType, resourceId);\n else if (this.statusCode == 409) return new ResourceAlreadyExistError(resourceType, resourceId);\n else if (\n (this.statusCode == 400 || this.statusCode == 500) &&\n this.message.includes('already exists')\n )\n return new ResourceAlreadyExistError(resourceType, resourceId);\n else return this;\n }\n}\n\n/**\n * Client-side error (4xx status codes)\n */\nexport class ClientError extends HTTPError {\n constructor(\n statusCode: number,\n message: string,\n options?: {\n requestId?: string;\n errorCode?: string;\n }\n ) {\n super(statusCode, message, options);\n this.name = 'ClientError';\n Object.setPrototypeOf(this, ClientError.prototype);\n }\n}\n\n/**\n * Server-side error (5xx status codes)\n */\nexport class ServerError extends HTTPError {\n constructor(\n statusCode: number,\n message: string,\n options?: {\n requestId?: string;\n errorCode?: string;\n }\n ) {\n super(statusCode, message, options);\n this.name = 'ServerError';\n Object.setPrototypeOf(this, ServerError.prototype);\n }\n}\n\n/**\n * Resource not found error\n */\nexport class ResourceNotExistError extends ClientError {\n readonly resourceType: string;\n readonly resourceId?: string;\n\n constructor(\n resourceType: string,\n resourceId?: string,\n options?: {\n requestId?: string;\n }\n ) {\n const message = resourceId\n ? `${resourceType} '${resourceId}' does not exist`\n : `${resourceType} does not exist`;\n super(404, message, options);\n this.name = 'ResourceNotExistError';\n this.resourceType = resourceType;\n this.resourceId = resourceId;\n Object.setPrototypeOf(this, ResourceNotExistError.prototype);\n }\n}\n\n/**\n * Resource already exists error\n */\nexport class ResourceAlreadyExistError extends ClientError {\n readonly resourceType: string;\n readonly resourceId?: string;\n\n constructor(\n resourceType: string,\n resourceId?: string,\n options?: {\n requestId?: string;\n }\n ) {\n const message = resourceId\n ? `${resourceType} '${resourceId}' already exists`\n : `${resourceType} already exists`;\n super(409, message, options);\n this.name = 'ResourceAlreadyExistError';\n this.resourceType = resourceType;\n this.resourceId = resourceId;\n Object.setPrototypeOf(this, ResourceAlreadyExistError.prototype);\n }\n}\n","/**\n * Control API Base Module\n *\n * 此模块定义控制链路 API 的基类。\n * This module defines the base class for control API.\n */\n\nimport * as $AgentRun from '@alicloud/agentrun20250910';\nimport * as $OpenApi from '@alicloud/openapi-client';\n\nimport { Config } from './config';\n\n// Handle ESM/CJS interop for Client class\nconst $AgentRunClient =\n // @ts-expect-error - ESM interop: default.default exists when imported as ESM namespace\n $AgentRun.default?.default ?? $AgentRun.default ?? $AgentRun;\n\ntype Client = InstanceType<typeof $AgentRunClient>;\n\n/**\n * Base class for Control API clients\n *\n * 提供控制链路和 DevS API 客户端的获取功能。\n * Provides functionality to get control API and DevS API clients.\n */\nexport class ControlAPI {\n protected config?: Config;\n\n constructor(config?: Config) {\n this.config = config;\n }\n\n /**\n * Get the underlying AgentRun client instance\n */\n getClient(config?: Config): Client {\n const cfg = Config.withConfigs(this.config, config);\n let endpoint = cfg.controlEndpoint;\n\n // Remove protocol prefix\n if (endpoint.startsWith('http://') || endpoint.startsWith('https://')) {\n endpoint = endpoint.split('://')[1];\n }\n\n const openApiConfig = new $OpenApi.Config({\n accessKeyId: cfg.accessKeyId,\n accessKeySecret: cfg.accessKeySecret,\n securityToken: cfg.securityToken || undefined,\n regionId: cfg.regionId,\n endpoint: endpoint,\n connectTimeout: cfg.timeout,\n readTimeout: cfg.readTimeout,\n });\n\n return new $AgentRunClient(openApiConfig);\n }\n}\n\n// Re-export the AgentRun models for use in generated code\nexport { $AgentRun };\n","/**\n * This file is auto generated by the code generation script.\n * Do not modify this file manually.\n * Use the `bun run codegen` command to regenerate.\n *\n * 当前文件为自动生成的控制 API 客户端代码。请勿手动修改此文件。\n * 使用 `bun run codegen` 命令重新生成。\n */\n\n// Source: model_control_api.yaml\n\nimport * as $AgentRun from '@alicloud/agentrun20250910';\nimport * as $Util from '@alicloud/tea-util';\n\nimport { Config } from '../../utils/config';\nimport { ControlAPI } from '../../utils/control-api';\nimport { ClientError, ServerError } from '../../utils/exception';\nimport { logger } from '../../utils/log';\n\n/**\n * Model Control API\n */\nexport class ModelControlAPI extends ControlAPI {\n constructor(config?: Config) {\n super(config);\n }\n\n /**\n * Create model service\n *\n * @param params - Method parameters\n * @param params.input - Model service configuration\n * @param params.headers - Custom request headers\n * @param params.config - Optional config override\n * @returns Created model service object\n */\n createModelService = async (params: {\n input: $AgentRun.CreateModelServiceInput;\n headers?: Record<string, string>;\n config?: Config;\n }): Promise<$AgentRun.ModelService> => {\n const { input, headers, config } = params;\n\n try {\n const client = this.getClient(config);\n const runtime = new $Util.RuntimeOptions({});\n\n const response = await client.createModelServiceWithOptions(\n new $AgentRun.CreateModelServiceRequest({ body: input }),\n headers ?? {},\n runtime\n );\n\n logger.debug(\n `request api createModelService, request Request ID: ${response.body?.requestId}\\n request: ${JSON.stringify([input])}\\n response: ${JSON.stringify(response.body?.data)}`\n );\n\n return response.body?.data as $AgentRun.ModelService;\n } catch (error: unknown) {\n if (error && typeof error === 'object' && 'statusCode' in error) {\n const e = error as { statusCode: number; message: string; data?: { requestId?: string } };\n const statusCode = e.statusCode;\n const message = e.message || 'Unknown error';\n const requestId = e.data?.requestId;\n\n if (statusCode >= 400 && statusCode < 500) {\n throw new ClientError(statusCode, message, { requestId });\n } else if (statusCode >= 500) {\n throw new ServerError(statusCode, message, { requestId });\n }\n }\n throw error;\n }\n };\n\n /**\n * Delete model service\n *\n * @param params - Method parameters\n * @param params.modelServiceName - Model service name\n * @param params.headers - Custom request headers\n * @param params.config - Optional config override\n * @returns Deleted model service object\n */\n deleteModelService = async (params: {\n modelServiceName: string;\n headers?: Record<string, string>;\n config?: Config;\n }): Promise<$AgentRun.ModelService> => {\n const { modelServiceName, headers, config } = params;\n\n try {\n const client = this.getClient(config);\n const runtime = new $Util.RuntimeOptions({});\n\n const response = await client.deleteModelServiceWithOptions(\n modelServiceName,\n headers ?? {},\n runtime\n );\n\n logger.debug(\n `request api deleteModelService, request Request ID: ${response.body?.requestId}\\n request: ${JSON.stringify([modelServiceName])}\\n response: ${JSON.stringify(response.body?.data)}`\n );\n\n return response.body?.data as $AgentRun.ModelService;\n } catch (error: unknown) {\n if (error && typeof error === 'object' && 'statusCode' in error) {\n const e = error as { statusCode: number; message: string; data?: { requestId?: string } };\n const statusCode = e.statusCode;\n const message = e.message || 'Unknown error';\n const requestId = e.data?.requestId;\n\n if (statusCode >= 400 && statusCode < 500) {\n throw new ClientError(statusCode, message, { requestId });\n } else if (statusCode >= 500) {\n throw new ServerError(statusCode, message, { requestId });\n }\n }\n throw error;\n }\n };\n\n /**\n * Update model service\n *\n * @param params - Method parameters\n * @param params.modelServiceName - Model service name\n * @param params.input - Model service configuration\n * @param params.headers - Custom request headers\n * @param params.config - Optional config override\n * @returns Updated model service object\n */\n updateModelService = async (params: {\n modelServiceName: string;\n input: $AgentRun.UpdateModelServiceInput;\n headers?: Record<string, string>;\n config?: Config;\n }): Promise<$AgentRun.ModelService> => {\n const { modelServiceName, input, headers, config } = params;\n\n try {\n const client = this.getClient(config);\n const runtime = new $Util.RuntimeOptions({});\n\n const response = await client.updateModelServiceWithOptions(\n modelServiceName,\n new $AgentRun.UpdateModelServiceRequest({ body: input }),\n headers ?? {},\n runtime\n );\n\n logger.debug(\n `request api updateModelService, request Request ID: ${response.body?.requestId}\\n request: ${JSON.stringify([modelServiceName, input])}\\n response: ${JSON.stringify(response.body?.data)}`\n );\n\n return response.body?.data as $AgentRun.ModelService;\n } catch (error: unknown) {\n if (error && typeof error === 'object' && 'statusCode' in error) {\n const e = error as { statusCode: number; message: string; data?: { requestId?: string } };\n const statusCode = e.statusCode;\n const message = e.message || 'Unknown error';\n const requestId = e.data?.requestId;\n\n if (statusCode >= 400 && statusCode < 500) {\n throw new ClientError(statusCode, message, { requestId });\n } else if (statusCode >= 500) {\n throw new ServerError(statusCode, message, { requestId });\n }\n }\n throw error;\n }\n };\n\n /**\n * Get model service\n *\n * @param params - Method parameters\n * @param params.modelServiceName - Model service name\n * @param params.headers - Custom request headers\n * @param params.config - Optional config override\n * @returns Model service object\n */\n getModelService = async (params: {\n modelServiceName: string;\n headers?: Record<string, string>;\n config?: Config;\n }): Promise<$AgentRun.ModelService> => {\n const { modelServiceName, headers, config } = params;\n\n try {\n const client = this.getClient(config);\n const runtime = new $Util.RuntimeOptions({});\n\n const response = await client.getModelServiceWithOptions(\n modelServiceName,\n headers ?? {},\n runtime\n );\n\n logger.debug(\n `request api getModelService, request Request ID: ${response.body?.requestId}\\n request: ${JSON.stringify([modelServiceName])}\\n response: ${JSON.stringify(response.body?.data)}`\n );\n\n return response.body?.data as $AgentRun.ModelService;\n } catch (error: unknown) {\n if (error && typeof error === 'object' && 'statusCode' in error) {\n const e = error as { statusCode: number; message: string; data?: { requestId?: string } };\n const statusCode = e.statusCode;\n const message = e.message || 'Unknown error';\n const requestId = e.data?.requestId;\n\n if (statusCode >= 400 && statusCode < 500) {\n throw new ClientError(statusCode, message, { requestId });\n } else if (statusCode >= 500) {\n throw new ServerError(statusCode, message, { requestId });\n }\n }\n throw error;\n }\n };\n\n /**\n * List model services\n *\n * @param params - Method parameters\n * @param params.input - List options\n * @param params.headers - Custom request headers\n * @param params.config - Optional config override\n * @returns List of model service objects\n */\n listModelServices = async (params: {\n input: $AgentRun.ListModelServicesRequest;\n headers?: Record<string, string>;\n config?: Config;\n }): Promise<$AgentRun.ListModelServicesOutput> => {\n const { input, headers, config } = params;\n\n try {\n const client = this.getClient(config);\n const runtime = new $Util.RuntimeOptions({});\n\n const response = await client.listModelServicesWithOptions(input, headers ?? {}, runtime);\n\n logger.debug(\n `request api listModelServices, request Request ID: ${response.body?.requestId}\\n request: ${JSON.stringify([input])}\\n response: ${JSON.stringify(response.body?.data)}`\n );\n\n return response.body?.data as $AgentRun.ListModelServicesOutput;\n } catch (error: unknown) {\n if (error && typeof error === 'object' && 'statusCode' in error) {\n const e = error as { statusCode: number; message: string; data?: { requestId?: string } };\n const statusCode = e.statusCode;\n const message = e.message || 'Unknown error';\n const requestId = e.data?.requestId;\n\n if (statusCode >= 400 && statusCode < 500) {\n throw new ClientError(statusCode, message, { requestId });\n } else if (statusCode >= 500) {\n throw new ServerError(statusCode, message, { requestId });\n }\n }\n throw error;\n }\n };\n\n /**\n * Create model proxy\n *\n * @param params - Method parameters\n * @param params.input - Model proxy configuration\n * @param params.headers - Custom request headers\n * @param params.config - Optional config override\n * @returns Created model proxy object\n */\n createModelProxy = async (params: {\n input: $AgentRun.CreateModelProxyInput;\n headers?: Record<string, string>;\n config?: Config;\n }): Promise<$AgentRun.ModelProxy> => {\n const { input, headers, config } = params;\n\n try {\n const client = this.getClient(config);\n const runtime = new $Util.RuntimeOptions({});\n\n const response = await client.createModelProxyWithOptions(\n new $AgentRun.CreateModelProxyRequest({ body: input }),\n headers ?? {},\n runtime\n );\n\n logger.debug(\n `request api createModelProxy, request Request ID: ${response.body?.requestId}\\n request: ${JSON.stringify([input])}\\n response: ${JSON.stringify(response.body?.data)}`\n );\n\n return response.body?.data as $AgentRun.ModelProxy;\n } catch (error: unknown) {\n if (error && typeof error === 'object' && 'statusCode' in error) {\n const e = error as { statusCode: number; message: string; data?: { requestId?: string } };\n const statusCode = e.statusCode;\n const message = e.message || 'Unknown error';\n const requestId = e.data?.requestId;\n\n if (statusCode >= 400 && statusCode < 500) {\n throw new ClientError(statusCode, message, { requestId });\n } else if (statusCode >= 500) {\n throw new ServerError(statusCode, message, { requestId });\n }\n }\n throw error;\n }\n };\n\n /**\n * Delete model proxy\n *\n * @param params - Method parameters\n * @param params.modelProxyName - Model proxy name\n * @param params.headers - Custom request headers\n * @param params.config - Optional config override\n * @returns Deleted model proxy object\n */\n deleteModelProxy = async (params: {\n modelProxyName: string;\n headers?: Record<string, string>;\n config?: Config;\n }): Promise<$AgentRun.ModelProxy> => {\n const { modelProxyName, headers, config } = params;\n\n try {\n const client = this.getClient(config);\n const runtime = new $Util.RuntimeOptions({});\n\n const response = await client.deleteModelProxyWithOptions(\n modelProxyName,\n headers ?? {},\n runtime\n );\n\n logger.debug(\n `request api deleteModelProxy, request Request ID: ${response.body?.requestId}\\n request: ${JSON.stringify([modelProxyName])}\\n response: ${JSON.stringify(response.body?.data)}`\n );\n\n return response.body?.data as $AgentRun.ModelProxy;\n } catch (error: unknown) {\n if (error && typeof error === 'object' && 'statusCode' in error) {\n const e = error as { statusCode: number; message: string; data?: { requestId?: string } };\n const statusCode = e.statusCode;\n const message = e.message || 'Unknown error';\n const requestId = e.data?.requestId;\n\n if (statusCode >= 400 && statusCode < 500) {\n throw new ClientError(statusCode, message, { requestId });\n } else if (statusCode >= 500) {\n throw new ServerError(statusCode, message, { requestId });\n }\n }\n throw error;\n }\n };\n\n /**\n * Update model proxy\n *\n * @param params - Method parameters\n * @param params.modelProxyName - Model proxy name\n * @param params.input - Model proxy configuration\n * @param params.headers - Custom request headers\n * @param params.config - Optional config override\n * @returns Updated model proxy object\n */\n updateModelProxy = async (params: {\n modelProxyName: string;\n input: $AgentRun.UpdateModelProxyInput;\n headers?: Record<string, string>;\n config?: Config;\n }): Promise<$AgentRun.ModelProxy> => {\n const { modelProxyName, input, headers, config } = params;\n\n try {\n const client = this.getClient(config);\n const runtime = new $Util.RuntimeOptions({});\n\n const response = await client.updateModelProxyWithOptions(\n modelProxyName,\n new $AgentRun.UpdateModelProxyRequest({ body: input }),\n headers ?? {},\n runtime\n );\n\n logger.debug(\n `request api updateModelProxy, request Request ID: ${response.body?.requestId}\\n request: ${JSON.stringify([modelProxyName, input])}\\n response: ${JSON.stringify(response.body?.data)}`\n );\n\n return response.body?.data as $AgentRun.ModelProxy;\n } catch (error: unknown) {\n if (error && typeof error === 'object' && 'statusCode' in error) {\n const e = error as { statusCode: number; message: string; data?: { requestId?: string } };\n const statusCode = e.statusCode;\n const message = e.message || 'Unknown error';\n const requestId = e.data?.requestId;\n\n if (statusCode >= 400 && statusCode < 500) {\n throw new ClientError(statusCode, message, { requestId });\n } else if (statusCode >= 500) {\n throw new ServerError(statusCode, message, { requestId });\n }\n }\n throw error;\n }\n };\n\n /**\n * Get model proxy\n *\n * @param params - Method parameters\n * @param params.modelProxyName - Model proxy name\n * @param params.headers - Custom request headers\n * @param params.config - Optional config override\n * @returns Model proxy object\n */\n getModelProxy = async (params: {\n modelProxyName: string;\n headers?: Record<string, string>;\n config?: Config;\n }): Promise<$AgentRun.ModelProxy> => {\n const { modelProxyName, headers, config } = params;\n\n try {\n const client = this.getClient(config);\n const runtime = new $Util.RuntimeOptions({});\n\n const response = await client.getModelProxyWithOptions(\n modelProxyName,\n headers ?? {},\n runtime\n );\n\n logger.debug(\n `request api getModelProxy, request Request ID: ${response.body?.requestId}\\n request: ${JSON.stringify([modelProxyName])}\\n response: ${JSON.stringify(response.body?.data)}`\n );\n\n return response.body?.data as $AgentRun.ModelProxy;\n } catch (error: unknown) {\n if (error && typeof error === 'object' && 'statusCode' in error) {\n const e = error as { statusCode: number; message: string; data?: { requestId?: string } };\n const statusCode = e.statusCode;\n const message = e.message || 'Unknown error';\n const requestId = e.data?.requestId;\n\n if (statusCode >= 400 && statusCode < 500) {\n throw new ClientError(statusCode, message, { requestId });\n } else if (statusCode >= 500) {\n throw new ServerError(statusCode, message, { requestId });\n }\n }\n throw error;\n }\n };\n\n /**\n * List model proxies\n *\n * @param params - Method parameters\n * @param params.input - List options\n * @param params.headers - Custom request headers\n * @param params.config - Optional config override\n * @returns List of model proxy objects\n */\n listModelProxies = async (params: {\n input: $AgentRun.ListModelProxiesRequest;\n headers?: Record<string, string>;\n config?: Config;\n }): Promise<$AgentRun.ListModelProxiesOutput> => {\n const { input, headers, config } = params;\n\n try {\n const client = this.getClient(config);\n const runtime = new $Util.RuntimeOptions({});\n\n const response = await client.listModelProxiesWithOptions(input, headers ?? {}, runtime);\n\n logger.debug(\n `request api listModelProxies, request Request ID: ${response.body?.requestId}\\n request: ${JSON.stringify([input])}\\n response: ${JSON.stringify(response.body?.data)}`\n );\n\n return response.body?.data as $AgentRun.ListModelProxiesOutput;\n } catch (error: unknown) {\n if (error && typeof error === 'object' && 'statusCode' in error) {\n const e = error as { statusCode: number; message: string; data?: { requestId?: string } };\n const statusCode = e.statusCode;\n const message = e.message || 'Unknown error';\n const requestId = e.data?.requestId;\n\n if (statusCode >= 400 && statusCode < 500) {\n throw new ClientError(statusCode, message, { requestId });\n } else if (statusCode >= 500) {\n throw new ServerError(statusCode, message, { requestId });\n }\n }\n throw error;\n }\n };\n}\n","/**\n * Common data models for AgentRun SDK\n *\n * 此模块定义通用的数据模型。\n * This module defines common data models.\n */\n\n/**\n * Resource status enum\n */\nexport type Status =\n | 'CREATING'\n | 'CREATE_FAILED'\n | 'READY'\n | 'UPDATING'\n | 'UPDATE_FAILED'\n | 'DELETING'\n | 'DELETE_FAILED';\n\nexport const Status = {\n CREATING: 'CREATING' as Status,\n CREATE_FAILED: 'CREATE_FAILED' as Status,\n READY: 'READY' as Status,\n UPDATING: 'UPDATING' as Status,\n UPDATE_FAILED: 'UPDATE_FAILED' as Status,\n DELETING: 'DELETING' as Status,\n DELETE_FAILED: 'DELETE_FAILED' as Status,\n};\n\nexport function isFinalStatus(status?: Status) {\n return [\n undefined,\n null,\n '',\n ...(['READY', 'CREATE_FAILED', 'UPDATE_FAILED', 'DELETE_FAILED'] as Status[]),\n ].includes(status);\n}\n\n/**\n * Network mode enum\n */\nexport type NetworkMode = 'PUBLIC' | 'PRIVATE' | 'PUBLIC_AND_PRIVATE';\n\nexport const NetworkMode = {\n PUBLIC: 'PUBLIC' as NetworkMode,\n PRIVATE: 'PRIVATE' as NetworkMode,\n PUBLIC_AND_PRIVATE: 'PUBLIC_AND_PRIVATE' as NetworkMode,\n};\n\n/**\n * Pageable input for list operations\n */\nexport interface PageableInput {\n pageNumber?: number;\n pageSize?: number;\n}\n\n/**\n * Network configuration\n */\nexport interface NetworkConfig {\n networkMode?: NetworkMode;\n vpcId?: string;\n vSwitchIds?: string[];\n securityGroupId?: string;\n}\n\n/**\n * Helper to convert camelCase to snake_case\n */\nexport function toSnakeCase(str: string): string {\n return str.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`);\n}\n\n/**\n * Helper to convert snake_case to camelCase\n */\nexport function toCamelCase(str: string): string {\n return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());\n}\n\n/**\n * Convert object keys from camelCase to snake_case\n */\nexport function toSnakeCaseKeys<T extends Record<string, unknown>>(\n obj: T\n): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n const snakeKey = toSnakeCase(key);\n if (value !== null && typeof value === 'object' && !Array.isArray(value)) {\n result[snakeKey] = toSnakeCaseKeys(value as Record<string, unknown>);\n } else if (Array.isArray(value)) {\n result[snakeKey] = value.map(item =>\n typeof item === 'object' && item !== null\n ? toSnakeCaseKeys(item as Record<string, unknown>)\n : item\n );\n } else {\n result[snakeKey] = value;\n }\n }\n return result;\n}\n\n/**\n * Convert object keys from snake_case to camelCase\n */\nexport function toCamelCaseKeys<T extends Record<string, unknown>>(\n obj: T\n): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n const camelKey = toCamelCase(key);\n if (value !== null && typeof value === 'object' && !Array.isArray(value)) {\n result[camelKey] = toCamelCaseKeys(value as Record<string, unknown>);\n } else if (Array.isArray(value)) {\n result[camelKey] = value.map(item =>\n typeof item === 'object' && item !== null\n ? toCamelCaseKeys(item as Record<string, unknown>)\n : item\n );\n } else {\n result[camelKey] = value;\n }\n }\n return result;\n}\n\n/**\n * Remove undefined values from object\n */\nexport function removeUndefined<T extends Record<string, unknown>>(obj: T): Partial<T> {\n const result: Partial<T> = {};\n for (const [key, value] of Object.entries(obj)) {\n if (value !== undefined) {\n (result as Record<string, unknown>)[key] = value;\n }\n }\n return result;\n}\n","/**\n资源基类模板 / Resource Base Template\n\n此模板用于生成资源对象的基类代码。\nThis template is used to generate base class code for resource objects.\n*/\n\nimport { Config } from './config';\nimport { ResourceNotExistError } from './exception';\nimport { logger } from './log';\nimport { isFinalStatus, PageableInput, Status } from './model';\n\n/**\n * 更新对象属性的辅助函数 / Helper function to update object properties\n *\n * 只复制数据属性,跳过方法和私有属性\n * Only copies data properties, skips methods and private properties\n *\n * @param target - 目标对象 / Target object\n * @param source - 源对象 / Source object\n */\nexport function updateObjectProperties(target: any, source: any): void {\n for (const key in source) {\n if (\n Object.prototype.hasOwnProperty.call(source, key) &&\n typeof source[key] !== 'function' &&\n !key.startsWith('_') // 跳过私有属性\n ) {\n target[key] = source[key];\n }\n }\n}\n\nexport interface WithUniqIdCallback {\n uniqIdCallback(): string | undefined;\n}\n\nexport interface ParamsWithConfig {\n config?: Config;\n}\n\nexport abstract class ResourceBase {\n public status?: Status;\n protected _config?: Config;\n\n abstract get(params?: ParamsWithConfig): Promise<any>;\n abstract delete(params?: ParamsWithConfig): Promise<any>;\n\n // static async list(params?: {\n // input?: PageableInput;\n // config?: Config;\n // }): Promise<WithUniqIdCallback[]> {\n // return [];\n // }\n\n waitUntil = async (params: {\n checkFinishedCallback: (resource: ResourceBase) => boolean | Promise<boolean>;\n intervalSeconds?: number;\n timeoutSeconds?: number;\n }): Promise<ResourceBase> => {\n const { checkFinishedCallback, intervalSeconds = 5, timeoutSeconds = 300 } = params;\n\n const startTime = Date.now();\n while (true) {\n if (await checkFinishedCallback(this)) return this;\n\n if (Date.now() - startTime >= timeoutSeconds * 1000) {\n throw new Error('Timeout waiting for resource to reach desired state');\n }\n\n await new Promise(resolve => setTimeout(resolve, intervalSeconds * 1000));\n }\n };\n\n waitUntilReadyOrFailed = async (params?: {\n callback?: (resource: ResourceBase) => void | Promise<void>;\n intervalSeconds?: number;\n timeoutSeconds?: number;\n }) => {\n const { callback, intervalSeconds = 5, timeoutSeconds = 300 } = params ?? {};\n\n async function checkFinishedCallback(resource: ResourceBase) {\n await resource.refresh();\n if (callback) await callback(resource);\n logger.debug(`Resource status: ${(resource as any).status}`);\n\n return isFinalStatus(resource.status);\n }\n\n return await this.waitUntil({\n checkFinishedCallback,\n intervalSeconds,\n timeoutSeconds,\n });\n };\n\n deleteAndWaitUntilFinished = async (params?: {\n callback?: (resource: ResourceBase) => void | Promise<void>;\n intervalSeconds?: number;\n timeoutSeconds?: number;\n }) => {\n const { callback, intervalSeconds = 5, timeoutSeconds = 300 } = params ?? {};\n\n try {\n await this.delete();\n } catch (error) {\n if (error instanceof ResourceNotExistError) return;\n }\n\n async function checkFinishedCallback(resource: ResourceBase) {\n try {\n await resource.refresh();\n if (callback) await callback(resource);\n } catch (error) {\n // Assuming that an error during refresh indicates the resource no longer exists\n if (error instanceof ResourceNotExistError) return true;\n if (resource.status === Status.DELETING) return false;\n\n throw Error(`Resource status is ${resource.status}`);\n }\n\n return false;\n }\n\n return await this.waitUntil({\n checkFinishedCallback,\n intervalSeconds,\n timeoutSeconds,\n });\n };\n\n refresh = async (params?: ParamsWithConfig) => await this.get(params);\n\n /**\n * 更新实例自身的属性 / Update instance properties\n *\n * @param source - 源对象 / Source object\n */\n updateSelf(source: any): void {\n updateObjectProperties(this, source);\n }\n\n setConfig = (config: Config) => {\n this._config = config;\n return this;\n };\n}\n\nexport function listAllResourcesFunction<\n ListParams extends { input?: PageableInput; config?: Config },\n ListResult extends WithUniqIdCallback,\n>(list: (params?: ListParams) => Promise<ListResult[]>) {\n return async (\n params?: Omit<NonNullable<ListParams['input']>, 'pageNumber' | 'pageSize'> & {\n config?: Config;\n }\n ) => {\n const { config, ...restParams } = params ?? {};\n\n const allResults: ListResult[] = [];\n let page = 1;\n const pageSize = 50;\n while (true) {\n const pageResults = await list({\n input: {\n ...restParams,\n pageNumber: page,\n pageSize: pageSize,\n },\n config,\n } as ListParams);\n\n page += 1;\n allResults.push(...pageResults);\n if (pageResults.length < pageSize) break;\n }\n\n const resultSet = new Set<string>();\n const results: any[] = [];\n for (const item of allResults) {\n const uniqId = item.uniqIdCallback() || '';\n if (!resultSet.has(uniqId) && uniqId) {\n resultSet.add(uniqId);\n results.push(item);\n }\n }\n\n return results;\n };\n}\n","import { Config } from '@/utils';\nimport { createOpenAICompatible } from '@ai-sdk/openai-compatible';\n\nexport interface ModelInfo {\n model?: string;\n apiKey?: string;\n baseUrl?: string;\n headers?: Record<string, string>;\n provider?: string;\n}\n\nexport type GetModelInfo = (params?: { config?: Config }) => Promise<ModelInfo>;\n\nexport class ModelAPI {\n getModelInfo: GetModelInfo;\n constructor(getModelInfo: GetModelInfo) {\n this.getModelInfo = getModelInfo;\n }\n // abstract modelInfo(params: { config?: Config }): Promise<ModelInfo>;\n\n private getProvider = async (params: { model?: string; config?: Config }) => {\n const { model, config } = params;\n\n const info = await this.getModelInfo({ config });\n const provider = createOpenAICompatible({\n name: model || info.model || '',\n apiKey: info.apiKey,\n baseURL: info.baseUrl || '',\n headers: info.headers,\n });\n\n return { provider, model: model || info.model || '' };\n };\n\n private getModel = async (params: Parameters<ModelAPI['getProvider']>[0]) => {\n const { provider, model } = await this.getProvider(params);\n return provider(model);\n };\n\n private getEmbeddingModel = async (params: Parameters<ModelAPI['getProvider']>[0]) => {\n const { provider, model } = await this.getProvider(params);\n return provider.embeddingModel(model);\n };\n\n completion = async (params: {\n messages: any[];\n model?: string;\n stream?: boolean;\n config?: Config;\n [key: string]: any;\n }): Promise<\n | import('ai').StreamTextResult<import('ai').ToolSet, any>\n | import('ai').GenerateTextResult<import('ai').ToolSet, any>\n > => {\n const { messages, model, stream = false, config, ...kwargs } = params;\n const { streamText, generateText } = await import('ai');\n\n return await (stream ? streamText : generateText)({\n model: await this.getModel({ model, config }),\n messages,\n ...kwargs,\n });\n };\n\n embedding = async (params: {\n values: string[];\n model?: string;\n stream?: boolean;\n config?: Config;\n [key: string]: any;\n }) => {\n const { values, model, config, ...kwargs } = params;\n const { embedMany } = await import('ai');\n\n return await embedMany({\n model: await this.getEmbeddingModel({ model, config }),\n values,\n ...kwargs,\n });\n };\n}\n","/**\n * Model Service Data Models\n *\n * 此模块定义 Model Service 相关的所有数据模型。\n * This module defines all data models related to Model Service.\n */\n\nimport { Status, PageableInput, NetworkConfig } from '../utils/model';\n\n/**\n * Backend type enum\n */\nexport type BackendType = 'proxy' | 'service';\n\nexport const BackendType = {\n PROXY: 'proxy' as BackendType,\n SERVICE: 'service' as BackendType,\n};\n\n/**\n * Model type enum\n */\nexport type ModelType = 'llm' | 'text-embedding' | 'speech2text' | 'tts' | 'rerank' | 'moderation';\n\nexport const ModelType = {\n LLM: 'llm' as ModelType,\n TEXT_EMBEDDING: 'text-embedding' as ModelType,\n SPEECH2TEXT: 'speech2text' as ModelType,\n TTS: 'tts' as ModelType,\n RERANK: 'rerank' as ModelType,\n MODERATION: 'moderation' as ModelType,\n};\n\n/**\n * Provider enum\n */\nexport type Provider =\n | 'openai'\n | 'anthropic'\n | 'baichuan'\n | 'deepseek'\n | 'gemini'\n | 'hunyuan'\n | 'minimax'\n | 'moonshot'\n | 'spark'\n | 'stepfun'\n | 'tongyi'\n | 'vertex_ai'\n | 'wenxin'\n | 'yi'\n | 'zhipuai'\n | 'custom';\n\nexport const Provider = {\n OPENAI: 'openai' as Provider,\n ANTHROPIC: 'anthropic' as Provider,\n BAICHUAN: 'baichuan' as Provider,\n DEEPSEEK: 'deepseek' as Provider,\n GEMINI: 'gemini' as Provider,\n HUNYUAN: 'hunyuan' as Provider,\n MINIMAX: 'minimax' as Provider,\n MOONSHOT: 'moonshot' as Provider,\n SPARK: 'spark' as Provider,\n STEPFUN: 'stepfun' as Provider,\n TONGYI: 'tongyi' as Provider,\n VERTEX_AI: 'vertex_ai' as Provider,\n WENXIN: 'wenxin' as Provider,\n YI: 'yi' as Provider,\n ZHIPUAI: 'zhipuai' as Provider,\n CUSTOM: 'custom' as Provider,\n};\n\nexport type ProxyMode = 'single' | 'multi';\n\nexport const ProxyMode = {\n SINGLE: 'single' as ProxyMode,\n MULTI: 'multi' as ProxyMode,\n};\n\n/**\n * Provider settings\n */\nexport interface ProviderSettings {\n apiKey?: string;\n baseUrl?: string;\n modelNames?: string[];\n}\n\n/**\n * Model features\n */\nexport interface ModelFeatures {\n agentThought?: boolean;\n multiToolCall?: boolean;\n streamToolCall?: boolean;\n toolCall?: boolean;\n vision?: boolean;\n}\n\n/**\n * Model properties\n */\nexport interface ModelProperties {\n contextSize?: number;\n}\n\n/**\n * Model parameter rule\n */\nexport interface ModelParameterRule {\n default?: unknown;\n max?: number;\n min?: number;\n name?: string;\n required?: boolean;\n type?: string;\n}\n\n/**\n * Model info config\n */\nexport interface ModelInfoConfig {\n modelName?: string;\n modelFeatures?: ModelFeatures;\n modelProperties?: ModelProperties;\n modelParameterRules?: ModelParameterRule[];\n}\n\n/**\n * Proxy config endpoint\n */\nexport interface ProxyConfigEndpoint {\n baseUrl?: string;\n modelNames?: string[];\n modelServiceName?: string;\n weight?: number;\n}\n\n/**\n * Proxy config fallback\n */\nexport interface ProxyConfigFallback {\n modelName?: string;\n modelServiceName?: string;\n}\n\nexport interface ProxyConfigTokenRateLimiter {\n tps?: number;\n tpm?: number;\n tph?: number;\n tpd?: number;\n}\n\nexport interface ProxyConfigAIGuardrailConfig {\n checkRequest?: boolean;\n checkResponse?: boolean;\n}\n\n/**\n * Proxy config policies\n */\nexport interface ProxyConfigPolicies {\n cache?: boolean;\n concurrencyLimit?: number;\n fallbacks?: ProxyConfigFallback[];\n numRetries?: number;\n requestTimeout?: number;\n aiGuardrailConfig?: ProxyConfigAIGuardrailConfig;\n tokenRateLimiter?: ProxyConfigTokenRateLimiter;\n}\n\n/**\n * Proxy config\n */\nexport interface ProxyConfig {\n endpoints?: ProxyConfigEndpoint[];\n policies?: ProxyConfigPolicies;\n}\n\nexport interface CommonModelMutableProps {\n credentialName?: string;\n description?: string;\n networkConfiguration?: NetworkConfig;\n tags?: string[];\n}\n\nexport interface CommonModelImmutableProps {\n modelType?: ModelType;\n}\n\nexport interface CommonModelSystemProps {\n createdAt?: string;\n lastUpdatedAt?: string;\n status?: Status;\n}\n\nexport interface ModelServiceMutableProps extends CommonModelMutableProps {\n providerSettings?: ProviderSettings;\n}\n\nexport interface ModelServiceImmutableProps extends CommonModelImmutableProps {\n modelInfoConfigs?: ModelInfoConfig[];\n modelServiceName?: string;\n provider?: string;\n}\n\nexport interface ModelServiceSystemProps extends CommonModelSystemProps {\n modelServiceId?: string;\n}\n\nexport interface ModelProxyMutableProps extends CommonModelMutableProps {\n cpu?: number;\n litellmVersion?: string;\n memory?: number;\n modelProxyName?: string;\n proxyModel?: ProxyMode;\n serviceRegionId?: string;\n proxyConfig?: ProxyConfig;\n executionRoleArn?: string;\n}\n\nexport interface ModelProxyImmutableProps extends CommonModelImmutableProps {}\n\nexport interface ModelProxySystemProps extends CommonModelSystemProps {\n endpoint?: string;\n functionName?: string;\n modelProxyId?: string;\n}\n\nexport interface ModelServiceCreateInput\n extends ModelServiceImmutableProps, ModelServiceMutableProps {}\n\nexport interface ModelServiceUpdateInput extends ModelServiceMutableProps {}\n\nexport interface ModelServiceListInput extends PageableInput {\n modelServiceName?: string;\n modelType?: ModelType;\n provider?: string;\n}\n\n/**\n * Model proxy create input\n */\nexport interface ModelProxyCreateInput extends ModelServiceImmutableProps, ModelProxyMutableProps {}\n\n/**\n * Model proxy update input\n */\nexport interface ModelProxyUpdateInput extends ModelServiceMutableProps {\n proxyModel?: string;\n executionRoleArn?: string;\n}\n\n/**\n * Model proxy list input\n */\nexport interface ModelProxyListInput extends PageableInput {\n modelProxyName?: string;\n proxyMode?: string;\n status?: Status;\n}\n\nexport interface ModelProxyInterface\n extends ModelProxyMutableProps, ModelProxyImmutableProps, ModelProxySystemProps {}\nexport interface ModelServiceInterface\n extends ModelServiceMutableProps, ModelServiceImmutableProps, ModelServiceSystemProps {}\n\n/**\n * Model service data type (complete data structure)\n */\nexport type ModelServiceData = ModelServiceInterface;\n\n/**\n * Model proxy data type (complete data structure)\n */\nexport type ModelProxyData = ModelProxyInterface;\n","/**\n * AgentRun Data API Client\n *\n * 用于与 AgentRun Data API 交互的 HTTP 客户端。\n * HTTP client for interacting with the AgentRun Data API.\n */\n\nimport * as http from 'http';\nimport * as https from 'https';\nimport * as fs from 'fs';\nimport * as nodePath from 'path';\nimport { URL } from 'url';\n\nimport { Config } from './config';\nimport { ClientError } from './exception';\nimport { logger } from './log';\n\n/**\n * Resource type enumeration\n */\nexport enum ResourceType {\n Runtime = 'runtime',\n LiteLLM = 'litellm',\n Tool = 'tool',\n Template = 'template',\n Sandbox = 'sandbox',\n}\n\n/**\n * Data API response interface\n */\nexport interface DataAPIResponse {\n [key: string]: unknown;\n}\n\n/**\n * File download result\n */\nexport interface FileDownloadResult {\n savedPath: string;\n size: number;\n}\n\n/**\n * AgentRun Data API Client\n *\n * This client provides methods for making HTTP requests to the AgentRun Data API\n * with automatic URL construction, JSON handling, and error management.\n */\nexport class DataAPI {\n private resourceName: string;\n private resourceType: ResourceType;\n private accessToken: string | null = null;\n private config: Config;\n private namespace: string;\n\n /**\n * Initialize the Data API Client.\n *\n * @param resourceName - Resource name for access token\n * @param resourceType - Resource type for access token\n * @param config - Configuration options\n * @param namespace - API namespace (default: \"agents\")\n */\n constructor(\n resourceName: string,\n resourceType: ResourceType,\n config?: Config,\n namespace: string = 'agents'\n ) {\n this.resourceName = resourceName;\n this.resourceType = resourceType;\n this.config = Config.withConfigs(config);\n this.namespace = namespace;\n\n // Check for provided access token\n const token = this.config.token;\n if (token) {\n logger.debug(`Using provided access token from config`);\n this.accessToken = token;\n }\n }\n\n /**\n * Get the base URL for API requests.\n */\n private getBaseUrl(): string {\n return this.config.dataEndpoint;\n }\n\n /**\n * Construct full URL with the given path and query parameters.\n *\n * @param path - API path (may include query string)\n * @param query - Query parameters to add/merge\n * @returns Complete URL string with query parameters\n */\n withPath(path: string, query?: Record<string, unknown>): string {\n // Remove leading slash if present\n path = path.replace(/^\\//, '');\n\n const parts = [this.getBaseUrl(), this.namespace, path]\n .filter(Boolean)\n .map(part => part.replace(/^\\/|\\/$/g, ''));\n\n const baseUrl = parts.join('/');\n\n if (!query || Object.keys(query).length === 0) {\n return baseUrl;\n }\n\n const urlObj = new URL(baseUrl);\n const existingParams = urlObj.searchParams;\n\n for (const key in query) {\n if (Object.prototype.hasOwnProperty.call(query, key)) {\n const value = query[key];\n if (Array.isArray(value)) {\n value.forEach(v => existingParams.append(key, String(v)));\n } else if (value !== undefined && value !== null) {\n existingParams.set(key, String(value));\n }\n }\n }\n\n urlObj.search = existingParams.toString();\n return urlObj.toString();\n }\n\n /**\n * Authenticate and prepare headers for the request.\n *\n * @param url - Request URL\n * @param headers - Request headers\n * @param query - Query parameters\n * @param config - Optional config override\n * @returns Tuple of [url, headers, query]\n */\n private async auth(\n url: string,\n headers: Record<string, string>,\n query?: Record<string, unknown>,\n config?: Config\n ): Promise<[string, Record<string, string>, Record<string, unknown> | undefined]> {\n const cfg = Config.withConfigs(this.config, config);\n\n // Fetch access token if not already available\n if (this.accessToken === null && this.resourceName && this.resourceType && !cfg.token) {\n try {\n // Dynamically import to avoid circular dependencies\n const { ControlAPI } = await import('./control-api');\n const $AgentRun = await import('@alicloud/agentrun20250910');\n\n const cli = new ControlAPI(this.config).getClient();\n\n const input =\n this.resourceType === ResourceType.Sandbox\n ? new $AgentRun.GetAccessTokenRequest({\n resourceId: this.resourceName,\n resourceType: this.resourceType,\n })\n : new $AgentRun.GetAccessTokenRequest({\n resourceName: this.resourceName,\n resourceType: this.resourceType,\n });\n\n const resp = await cli.getAccessToken(input);\n this.accessToken = resp.body?.data?.accessToken || null;\n\n logger.debug(\n `Fetched access token for resource ${this.resourceName} of type ${this.resourceType}`\n );\n } catch (e) {\n logger.warn(\n `Failed to get access token for ${this.resourceType}(${this.resourceName}): ${e}`\n );\n }\n }\n\n // Merge headers with authentication\n const authHeaders = {\n 'Agentrun-Access-Token': cfg.token || this.accessToken || '',\n ...cfg.headers,\n ...headers,\n };\n\n return [url, authHeaders, query];\n }\n\n /**\n * Prepare the HTTP request.\n */\n private async prepareRequest(\n method: string,\n url: string,\n data?: Record<string, unknown> | string | Buffer,\n headers?: Record<string, string>,\n query?: Record<string, unknown>,\n config?: Config\n ): Promise<{\n method: string;\n url: string;\n headers: Record<string, string>;\n body?: string | Buffer;\n }> {\n const reqHeaders: Record<string, string> = {\n 'Content-Type': 'application/json',\n 'User-Agent': 'AgentRunDataClient/1.0',\n };\n\n const cfg = Config.withConfigs(this.config, config);\n Object.assign(reqHeaders, cfg.headers);\n if (headers) {\n Object.assign(reqHeaders, headers);\n }\n\n // Apply authentication\n const [authUrl, authHeaders, authQuery] = await this.auth(url, reqHeaders, query, cfg);\n\n // Add query parameters to URL\n let finalUrl = authUrl;\n if (authQuery && Object.keys(authQuery).length > 0) {\n const urlObj = new URL(authUrl);\n for (const key in authQuery) {\n if (Object.prototype.hasOwnProperty.call(authQuery, key)) {\n const value = authQuery[key];\n if (value !== undefined && value !== null) {\n urlObj.searchParams.set(key, String(value));\n }\n }\n }\n finalUrl = urlObj.toString();\n }\n\n // Prepare request body\n let body: string | Buffer | undefined;\n if (data !== undefined) {\n if (Buffer.isBuffer(data)) {\n body = data;\n } else if (typeof data === 'object') {\n body = JSON.stringify(data);\n } else {\n body = data;\n }\n }\n\n logger.debug(`${method} ${finalUrl} headers=${JSON.stringify(authHeaders)}`);\n\n return { method, url: finalUrl, headers: authHeaders, body };\n }\n\n /**\n * Make an HTTP request.\n */\n private async makeRequest(\n method: string,\n path: string,\n data?: Record<string, unknown> | string | Buffer,\n query?: Record<string, unknown>,\n headers?: Record<string, string>,\n config?: Config\n ): Promise<DataAPIResponse> {\n const fullUrl = this.withPath(path, query);\n const {\n method: reqMethod,\n url: reqUrl,\n headers: reqHeaders,\n body: reqBody,\n } = await this.prepareRequest(method, fullUrl, data, headers, undefined, config);\n\n const client = reqUrl.startsWith('https') ? https : http;\n const urlObj = new URL(reqUrl);\n\n const options: http.RequestOptions = {\n hostname: urlObj.hostname,\n port: urlObj.port || (reqUrl.startsWith('https') ? 443 : 80),\n path: urlObj.pathname + urlObj.search,\n method: reqMethod,\n headers: reqHeaders,\n timeout: this.config.timeout,\n };\n\n return new Promise((resolve, reject) => {\n const req = client.request(options, res => {\n let responseData = '';\n res.on('data', chunk => (responseData += chunk));\n res.on('end', () => {\n logger.debug(`Response: ${responseData}`);\n\n if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {\n try {\n resolve(responseData ? JSON.parse(responseData) : {});\n } catch (e) {\n const errorMsg = `Failed to parse JSON response: ${e}`;\n logger.error(errorMsg);\n reject(new ClientError(res.statusCode || 0, errorMsg));\n }\n } else {\n const errorMsg = responseData || res.statusMessage || 'Unknown error';\n reject(new ClientError(res.statusCode || 0, errorMsg));\n }\n });\n });\n\n req.on('error', e => {\n reject(new ClientError(0, `Request error: ${e.message}`));\n });\n\n req.on('timeout', () => {\n req.destroy();\n reject(new ClientError(0, 'Request timeout'));\n });\n\n if (reqBody) {\n req.write(reqBody);\n }\n req.end();\n });\n }\n\n /**\n * Make a GET request.\n *\n * @param path - API path\n * @param query - Query parameters\n * @param headers - Additional headers\n * @param config - Optional config override\n */\n async get(\n path: string,\n query?: Record<string, unknown>,\n headers?: Record<string, string>,\n config?: Config\n ): Promise<DataAPIResponse> {\n return this.makeRequest('GET', path, undefined, query, headers, config);\n }\n\n /**\n * Make a POST request.\n *\n * @param path - API path\n * @param data - Request body\n * @param query - Query parameters\n * @param headers - Additional headers\n * @param config - Optional config override\n */\n async post(\n path: string,\n data?: Record<string, unknown> | string | Buffer,\n query?: Record<string, unknown>,\n headers?: Record<string, string>,\n config?: Config\n ): Promise<DataAPIResponse> {\n return this.makeRequest('POST', path, data, query, headers, config);\n }\n\n /**\n * Make a PUT request.\n *\n * @param path - API path\n * @param data - Request body\n * @param query - Query parameters\n * @param headers - Additional headers\n * @param config - Optional config override\n */\n async put(\n path: string,\n data?: Record<string, unknown> | string | Buffer,\n query?: Record<string, unknown>,\n headers?: Record<string, string>,\n config?: Config\n ): Promise<DataAPIResponse> {\n return this.makeRequest('PUT', path, data, query, headers, config);\n }\n\n /**\n * Make a PATCH request.\n *\n * @param path - API path\n * @param data - Request body\n * @param query - Query parameters\n * @param headers - Additional headers\n * @param config - Optional config override\n */\n async patch(\n path: string,\n data?: Record<string, unknown> | string | Buffer,\n query?: Record<string, unknown>,\n headers?: Record<string, string>,\n config?: Config\n ): Promise<DataAPIResponse> {\n return this.makeRequest('PATCH', path, data, query, headers, config);\n }\n\n /**\n * Make a DELETE request.\n *\n * @param path - API path\n * @param query - Query parameters\n * @param headers - Additional headers\n * @param config - Optional config override\n */\n async delete(\n path: string,\n query?: Record<string, unknown>,\n headers?: Record<string, string>,\n config?: Config\n ): Promise<DataAPIResponse> {\n return this.makeRequest('DELETE', path, undefined, query, headers, config);\n }\n\n /**\n * Upload a file using multipart/form-data.\n *\n * @param path - API path\n * @param localFilePath - Local file path to upload\n * @param targetFilePath - Target file path on the server\n * @param formData - Additional form data fields\n * @param query - Query parameters\n * @param headers - Additional headers\n * @param config - Optional config override\n */\n async postFile(\n path: string,\n localFilePath: string,\n targetFilePath: string,\n formData?: Record<string, string>,\n query?: Record<string, unknown>,\n headers?: Record<string, string>,\n config?: Config\n ): Promise<DataAPIResponse> {\n const fullUrl = this.withPath(path, query);\n const { url: reqUrl, headers: reqHeaders } = await this.prepareRequest(\n 'POST',\n fullUrl,\n undefined,\n headers,\n undefined,\n config\n );\n\n const client = reqUrl.startsWith('https') ? https : http;\n const urlObj = new URL(reqUrl);\n\n return new Promise((resolve, reject) => {\n const boundary = `----WebKitFormBoundary${Math.random().toString(36).substring(2)}`;\n const contentHeaders = {\n ...reqHeaders,\n 'Content-Type': `multipart/form-data; boundary=${boundary}`,\n };\n\n const options: http.RequestOptions = {\n hostname: urlObj.hostname,\n port: urlObj.port || (reqUrl.startsWith('https') ? 443 : 80),\n path: urlObj.pathname + urlObj.search,\n method: 'POST',\n headers: contentHeaders,\n timeout: this.config.timeout,\n };\n\n const req = client.request(options, res => {\n let responseData = '';\n res.on('data', chunk => (responseData += chunk));\n res.on('end', () => {\n if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {\n try {\n resolve(responseData ? JSON.parse(responseData) : {});\n } catch (e) {\n logger.error(`Failed to parse JSON response: ${e}`);\n reject(new ClientError(res.statusCode || 0, `Failed to parse JSON: ${e}`));\n }\n } else {\n reject(new ClientError(res.statusCode || 0, responseData || 'Unknown error'));\n }\n });\n });\n\n req.on('error', e => {\n reject(new ClientError(0, `Request error: ${e.message}`));\n });\n\n // Helper to write form fields\n const appendField = (name: string, value: string) => {\n req.write(`--${boundary}\\r\\n`);\n req.write(`Content-Disposition: form-data; name=\"${name}\"\\r\\n`);\n req.write('\\r\\n');\n req.write(`${value}\\r\\n`);\n };\n\n // Write form data fields\n if (formData) {\n for (const key in formData) {\n if (Object.prototype.hasOwnProperty.call(formData, key)) {\n appendField(key, formData[key]);\n }\n }\n }\n\n // Add target path field\n appendField('path', targetFilePath);\n\n // Write file\n const filename = nodePath.basename(localFilePath);\n req.write(`--${boundary}\\r\\n`);\n req.write(`Content-Disposition: form-data; name=\"file\"; filename=\"${filename}\"\\r\\n`);\n req.write('Content-Type: application/octet-stream\\r\\n');\n req.write('\\r\\n');\n\n const fileStream = fs.createReadStream(localFilePath);\n fileStream.pipe(req, { end: false });\n\n fileStream.on('end', () => {\n req.write(`\\r\\n--${boundary}--\\r\\n`);\n req.end();\n });\n\n fileStream.on('error', e => {\n reject(new ClientError(0, `File stream error: ${e.message}`));\n });\n });\n }\n\n /**\n * Download a file and save it to local path.\n *\n * @param path - API path\n * @param savePath - Local file path to save the downloaded file\n * @param query - Query parameters\n * @param headers - Additional headers\n * @param config - Optional config override\n */\n async getFile(\n path: string,\n savePath: string,\n query?: Record<string, unknown>,\n headers?: Record<string, string>,\n config?: Config\n ): Promise<FileDownloadResult> {\n const fullUrl = this.withPath(path, query);\n const { url: reqUrl, headers: reqHeaders } = await this.prepareRequest(\n 'GET',\n fullUrl,\n undefined,\n headers,\n undefined,\n config\n );\n\n const client = reqUrl.startsWith('https') ? https : http;\n const urlObj = new URL(reqUrl);\n\n return new Promise((resolve, reject) => {\n const options: http.RequestOptions = {\n hostname: urlObj.hostname,\n port: urlObj.port || (reqUrl.startsWith('https') ? 443 : 80),\n path: urlObj.pathname + urlObj.search,\n method: 'GET',\n headers: reqHeaders,\n timeout: this.config.timeout,\n };\n\n const req = client.request(options, res => {\n if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {\n const fileStream = fs.createWriteStream(savePath);\n let downloadedSize = 0;\n\n res.on('data', chunk => {\n fileStream.write(chunk);\n downloadedSize += chunk.length;\n });\n\n res.on('end', () => {\n fileStream.end();\n resolve({ savedPath: savePath, size: downloadedSize });\n });\n\n res.on('error', e => {\n fileStream.end();\n reject(new ClientError(0, `Response error: ${e.message}`));\n });\n } else {\n let errorData = '';\n res.on('data', chunk => (errorData += chunk));\n res.on('end', () => {\n reject(new ClientError(res.statusCode || 0, errorData || 'Download failed'));\n });\n }\n });\n\n req.on('error', e => {\n reject(new ClientError(0, `Request error: ${e.message}`));\n });\n\n req.end();\n });\n }\n\n /**\n * Download a video file and save it to local path.\n *\n * @param path - API path\n * @param savePath - Local file path to save the downloaded video\n * @param query - Query parameters\n * @param headers - Additional headers\n * @param config - Optional config override\n */\n async getVideo(\n path: string,\n savePath: string,\n query?: Record<string, unknown>,\n headers?: Record<string, string>,\n config?: Config\n ): Promise<FileDownloadResult> {\n // Video download is the same as file download\n return this.getFile(path, savePath, query, headers, config);\n }\n}\n","/**\n * Utility exports\n */\n\nimport '@/utils/version-check';\n\nexport { Config, type ConfigOptions } from './config';\nexport { DataAPI, ResourceType } from './data-api';\nexport {\n AgentRunError,\n ClientError,\n HTTPError,\n ResourceAlreadyExistError,\n ResourceNotExistError,\n ServerError,\n} from './exception';\nexport { logger, type LogLevel } from './log';\nexport {\n NetworkMode,\n removeUndefined,\n Status,\n toCamelCase,\n toCamelCaseKeys,\n toSnakeCase,\n toSnakeCaseKeys,\n type NetworkConfig,\n type PageableInput,\n} from './model';\n","/**\n * This file is auto generated by the code generation script.\n * Do not modify this file manually.\n * Use the `bun run codegen` command to regenerate.\n *\n * 当前文件为自动生成的控制 API 客户端代码。请勿手动修改此文件。\n * 使用 `bun run codegen` 命令重新生成。\n */\n\n// Source: credential_control_api.yaml\n\nimport * as $AgentRun from '@alicloud/agentrun20250910';\nimport * as $Util from '@alicloud/tea-util';\n\nimport { Config } from '../../utils/config';\nimport { ControlAPI } from '../../utils/control-api';\nimport { ClientError, ServerError } from '../../utils/exception';\nimport { logger } from '../../utils/log';\n\n/**\n * Credential Control API\n */\nexport class CredentialControlAPI extends ControlAPI {\n constructor(config?: Config) {\n super(config);\n }\n\n /**\n * Create credential\n *\n * @param params - Method parameters\n * @param params.input - Credential configuration\n * @param params.headers - Custom request headers\n * @param params.config - Optional config override\n * @returns Created credential object\n */\n createCredential = async (params: {\n input: $AgentRun.CreateCredentialInput;\n headers?: Record<string, string>;\n config?: Config;\n }): Promise<$AgentRun.Credential> => {\n const { input, headers, config } = params;\n\n try {\n const client = this.getClient(config);\n const runtime = new $Util.RuntimeOptions({});\n\n const response = await client.createCredentialWithOptions(\n new $AgentRun.CreateCredentialRequest({ body: input }),\n headers ?? {},\n runtime\n );\n\n logger.debug(\n `request api createCredential, request Request ID: ${response.body?.requestId}\\n request: ${JSON.stringify([input])}\\n response: ${JSON.stringify(response.body?.data)}`\n );\n\n return response.body?.data as $AgentRun.Credential;\n } catch (error: unknown) {\n if (error && typeof error === 'object' && 'statusCode' in error) {\n const e = error as { statusCode: number; message: string; data?: { requestId?: string } };\n const statusCode = e.statusCode;\n const message = e.message || 'Unknown error';\n const requestId = e.data?.requestId;\n\n if (statusCode >= 400 && statusCode < 500) {\n throw new ClientError(statusCode, message, { requestId });\n } else if (statusCode >= 500) {\n throw new ServerError(statusCode, message, { requestId });\n }\n }\n throw error;\n }\n };\n\n /**\n * Delete credential\n *\n * @param params - Method parameters\n * @param params.credentialName - Credential name\n * @param params.headers - Custom request headers\n * @param params.config - Optional config override\n * @returns Deleted credential object\n */\n deleteCredential = async (params: {\n credentialName: string;\n headers?: Record<string, string>;\n config?: Config;\n }): Promise<$AgentRun.Credential> => {\n const { credentialName, headers, config } = params;\n\n try {\n const client = this.getClient(config);\n const runtime = new $Util.RuntimeOptions({});\n\n const response = await client.deleteCredentialWithOptions(\n credentialName,\n headers ?? {},\n runtime\n );\n\n logger.debug(\n `request api deleteCredential, request Request ID: ${response.body?.requestId}\\n request: ${JSON.stringify([credentialName])}\\n response: ${JSON.stringify(response.body?.data)}`\n );\n\n return response.body?.data as $AgentRun.Credential;\n } catch (error: unknown) {\n if (error && typeof error === 'object' && 'statusCode' in error) {\n const e = error as { statusCode: number; message: string; data?: { requestId?: string } };\n const statusCode = e.statusCode;\n const message = e.message || 'Unknown error';\n const requestId = e.data?.requestId;\n\n if (statusCode >= 400 && statusCode < 500) {\n throw new ClientError(statusCode, message, { requestId });\n } else if (statusCode >= 500) {\n throw new ServerError(statusCode, message, { requestId });\n }\n }\n throw error;\n }\n };\n\n /**\n * Update credential\n *\n * @param params - Method parameters\n * @param params.credentialName - Credential name\n * @param params.input - Credential configuration\n * @param params.headers - Custom request headers\n * @param params.config - Optional config override\n * @returns Updated credential object\n */\n updateCredential = async (params: {\n credentialName: string;\n input: $AgentRun.UpdateCredentialInput;\n headers?: Record<string, string>;\n config?: Config;\n }): Promise<$AgentRun.Credential> => {\n const { credentialName, input, headers, config } = params;\n\n try {\n const client = this.getClient(config);\n const runtime = new $Util.RuntimeOptions({});\n\n const response = await client.updateCredentialWithOptions(\n credentialName,\n new $AgentRun.UpdateCredentialRequest({ body: input }),\n headers ?? {},\n runtime\n );\n\n logger.debug(\n `request api updateCredential, request Request ID: ${response.body?.requestId}\\n request: ${JSON.stringify([credentialName, input])}\\n response: ${JSON.stringify(response.body?.data)}`\n );\n\n return response.body?.data as $AgentRun.Credential;\n } catch (error: unknown) {\n if (error && typeof error === 'object' && 'statusCode' in error) {\n const e = error as { statusCode: number; message: string; data?: { requestId?: string } };\n const statusCode = e.statusCode;\n const message = e.message || 'Unknown error';\n const requestId = e.data?.requestId;\n\n if (statusCode >= 400 && statusCode < 500) {\n throw new ClientError(statusCode, message, { requestId });\n } else if (statusCode >= 500) {\n throw new ServerError(statusCode, message, { requestId });\n }\n }\n throw error;\n }\n };\n\n /**\n * Get credential\n *\n * @param params - Method parameters\n * @param params.credentialName - Credential name\n * @param params.headers - Custom request headers\n * @param params.config - Optional config override\n * @returns Credential object\n */\n getCredential = async (params: {\n credentialName: string;\n headers?: Record<string, string>;\n config?: Config;\n }): Promise<$AgentRun.Credential> => {\n const { credentialName, headers, config } = params;\n\n try {\n const client = this.getClient(config);\n const runtime = new $Util.RuntimeOptions({});\n\n const response = await client.getCredentialWithOptions(\n credentialName,\n headers ?? {},\n runtime\n );\n\n logger.debug(\n `request api getCredential, request Request ID: ${response.body?.requestId}\\n request: ${JSON.stringify([credentialName])}\\n response: ${JSON.stringify(response.body?.data)}`\n );\n\n return response.body?.data as $AgentRun.Credential;\n } catch (error: unknown) {\n if (error && typeof error === 'object' && 'statusCode' in error) {\n const e = error as { statusCode: number; message: string; data?: { requestId?: string } };\n const statusCode = e.statusCode;\n const message = e.message || 'Unknown error';\n const requestId = e.data?.requestId;\n\n if (statusCode >= 400 && statusCode < 500) {\n throw new ClientError(statusCode, message, { requestId });\n } else if (statusCode >= 500) {\n throw new ServerError(statusCode, message, { requestId });\n }\n }\n throw error;\n }\n };\n\n /**\n * List credentials\n *\n * @param params - Method parameters\n * @param params.input - List options\n * @param params.headers - Custom request headers\n * @param params.config - Optional config override\n * @returns List of credential objects\n */\n listCredentials = async (params: {\n input: $AgentRun.ListCredentialsRequest;\n headers?: Record<string, string>;\n config?: Config;\n }): Promise<$AgentRun.ListCredentialsOutput> => {\n const { input, headers, config } = params;\n\n try {\n const client = this.getClient(config);\n const runtime = new $Util.RuntimeOptions({});\n\n const response = await client.listCredentialsWithOptions(input, headers ?? {}, runtime);\n\n logger.debug(\n `request api listCredentials, request Request ID: ${response.body?.requestId}\\n request: ${JSON.stringify([input])}\\n response: ${JSON.stringify(response.body?.data)}`\n );\n\n return response.body?.data as $AgentRun.ListCredentialsOutput;\n } catch (error: unknown) {\n if (error && typeof error === 'object' && 'statusCode' in error) {\n const e = error as { statusCode: number; message: string; data?: { requestId?: string } };\n const statusCode = e.statusCode;\n const message = e.message || 'Unknown error';\n const requestId = e.data?.requestId;\n\n if (statusCode >= 400 && statusCode < 500) {\n throw new ClientError(statusCode, message, { requestId });\n } else if (statusCode >= 500) {\n throw new ServerError(statusCode, message, { requestId });\n }\n }\n throw error;\n }\n };\n}\n","/**\n * Credential Data Models\n *\n * 此模块定义 Credential 相关的所有数据模型。\n * This module defines all data models related to Credential.\n */\n\nimport { PageableInput } from '../utils/model';\nimport { updateObjectProperties } from '../utils/resource';\nimport { Config } from '../utils/config';\n\n/** 凭证认证类型 / Credential Authentication Types */\nexport type CredentialAuthType = 'jwt' | 'api_key' | 'basic' | 'aksk' | 'custom_header';\n\n/** 凭证来源类型 / Credential Source Types */\nexport type CredentialSourceType = 'external_llm' | 'external_tool' | 'internal';\n\n/**\n * Credential basic authentication configuration\n */\nexport interface CredentialBasicAuth {\n /** Username */\n username?: string;\n /** Password */\n password?: string;\n}\n\n/**\n * Related resource for credential\n */\nexport interface RelatedResource {\n /** 资源 IDj*/\n resourceId?: string;\n /** 资源名称j*/\n resourceName?: string;\n /** 资源类型j*/\n resourceType?: string;\n}\n\nexport interface CredentialConfigInterface {\n /** 凭证认证类型 */\n credentialAuthType?: CredentialAuthType;\n /** 凭证来源类型 */\n credentialSourceType?: CredentialSourceType;\n /** 凭证公共配置 */\n credentialPublicConfig?: Record<string, any>;\n /** 凭证密钥 */\n credentialSecret?: string;\n}\n\n/**\n * 凭证配置 / Credential configuration\n */\nexport class CredentialConfig implements CredentialConfigInterface {\n constructor(data?: CredentialConfigInterface) {\n if (data) updateObjectProperties(this, data);\n }\n\n /** 配置访问 AgentRun 的 api key 凭证 */\n static inboundApiKey(params: { apiKey: string; headerKey?: string }) {\n const { apiKey, headerKey = 'Authorization' } = params;\n return new CredentialConfig({\n credentialSourceType: 'internal',\n credentialAuthType: 'api_key',\n credentialPublicConfig: { headerKey },\n credentialSecret: apiKey,\n });\n }\n\n /** 配置访问 AgentRun 的静态 JWKS 凭证 */\n static inboundStaticJwt(params: { jwks: string }) {\n const { jwks } = params;\n return new CredentialConfig({\n credentialSourceType: 'internal',\n credentialAuthType: 'jwt',\n credentialPublicConfig: { authType: 'static_jwks', jwks },\n credentialSecret: '',\n });\n }\n\n /** 配置访问 AgentRun 的远程 JWT 凭证 */\n static inboundRemoteJwt(\n uri: string,\n timeout: number = 3000,\n ttl: number = 30000,\n publicConfig?: Record<string, any>\n ) {\n return new CredentialConfig({\n credentialSourceType: 'internal',\n credentialAuthType: 'jwt',\n credentialPublicConfig: { uri, timeout, ttl, ...publicConfig },\n credentialSecret: '',\n });\n }\n\n /** 配置访问 AgentRun 的 Basic 凭证 */\n static inboundBasic(params: { users: CredentialBasicAuth[] }) {\n const { users } = params;\n return new CredentialConfig({\n credentialSourceType: 'internal',\n credentialAuthType: 'basic',\n credentialPublicConfig: { users },\n credentialSecret: '',\n });\n }\n\n /** 配置访问第三方工具的 api key 凭证 */\n static outboundLLMApiKey(params: { apiKey: string; provider: string }) {\n const { apiKey, provider } = params;\n return new CredentialConfig({\n credentialSourceType: 'external_llm',\n credentialAuthType: 'api_key',\n credentialPublicConfig: { provider },\n credentialSecret: apiKey,\n });\n }\n\n /** 配置访问第三方工具的 ak/sk 凭证 */\n static outboundLLMAKSK(\n provider: string,\n accessKeyId: string,\n accessKeySecret: string,\n accountId: string\n ) {\n return new CredentialConfig({\n credentialSourceType: 'external_tool',\n credentialAuthType: 'aksk',\n credentialPublicConfig: {\n provider,\n authConfig: { accessKey: accessKeyId, accountId: accountId },\n },\n credentialSecret: accessKeySecret,\n });\n }\n\n /** 配置访问第三方工具的自定义凭证 */\n static outboundToolAKSKCustom(params: { authConfig: Record<string, string> }) {\n const { authConfig } = params;\n return new CredentialConfig({\n credentialSourceType: 'external_tool',\n credentialAuthType: 'aksk',\n credentialPublicConfig: { provider: 'custom', authConfig },\n credentialSecret: '',\n });\n }\n\n /** 配置访问第三方工具的自定义 Header 凭证 */\n static outboundToolCustomHeader(params: { headers: Record<string, string> }) {\n const { headers } = params;\n return new CredentialConfig({\n credentialSourceType: 'external_tool',\n credentialAuthType: 'custom_header',\n credentialPublicConfig: { authConfig: headers },\n credentialSecret: '',\n });\n }\n}\n\n/** 凭证公共配置 */\nexport interface CredentialMutableProps {\n /** 描述 */\n description?: string;\n /** 是否启用 */\n enabled?: boolean;\n}\n\nexport interface CredentialImmutableProps {\n credentialName?: string;\n}\n\nexport interface CredentialSystemProps {\n credentialId?: string;\n createdAt?: string;\n updatedAt?: string;\n relatedResources?: RelatedResource[];\n}\n\nexport interface CredentialCreateInput extends CredentialMutableProps, CredentialImmutableProps {\n credentialConfig?: CredentialConfig;\n}\n\n/**\n * Credential update input\n */\nexport interface CredentialUpdateInput extends CredentialMutableProps {\n credentialConfig?: CredentialConfig;\n}\n\n/**\n * Credential list input\n */\nexport interface CredentialListInput extends PageableInput {\n credentialAuthType?: CredentialAuthType;\n credentialName?: string;\n credentialSourceType?: CredentialSourceType;\n provider?: string;\n}\n\nexport class CredentialListOutput {\n createdAt?: string;\n credentialAuthType?: CredentialAuthType;\n credentialId?: string;\n credentialName?: string;\n credentialSourceType?: CredentialSourceType;\n enabled?: boolean;\n relatedResourceCount?: number;\n updatedAt?: string;\n\n constructor(data?: any) {\n if (data) updateObjectProperties(this, data);\n }\n\n uniqIdCallback = () => this.credentialId;\n\n toCredential = async (params?: { config?: Config }) => {\n const { CredentialClient } = await import('./client');\n return await new CredentialClient(params?.config).get({\n name: this.credentialName || '',\n config: params?.config,\n });\n };\n}\n\n/**\n * Credential resource class\n */\n\nexport interface CredentialInterface\n extends\n CredentialMutableProps,\n CredentialImmutableProps,\n CredentialSystemProps,\n CredentialConfigInterface {}\n","/**\n * Credential Client\n *\n * 此模块提供 Credential 的客户端 API。\n * This module provides the client API for Credential.\n */\n\nimport { HTTPError } from '../utils';\nimport { Config } from '../utils/config';\n\nimport * as $AgentRun from '@alicloud/agentrun20250910';\nimport { CredentialControlAPI } from './api/control';\nimport { Credential } from './credential';\nimport {\n CredentialCreateInput,\n CredentialListInput,\n CredentialListOutput,\n CredentialUpdateInput,\n} from './model';\n\n/**\n * Credential Client\n *\n * 提供 Credential 的创建、删除、更新、查询功能。\n * Provides create, delete, update, query functions for Credential.\n */\nexport class CredentialClient {\n private config?: Config;\n private controlApi: CredentialControlAPI;\n\n constructor(config?: Config) {\n this.config = config;\n this.controlApi = new CredentialControlAPI(config);\n }\n\n /**\n * Create a Credential\n */\n create = async (params: {\n input: CredentialCreateInput;\n config?: Config;\n }): Promise<Credential> => {\n try {\n const { input, config } = params;\n const cfg = Config.withConfigs(this.config, config);\n\n // Normalize credentialConfig to SDK expected field names.\n const credCfg = input.credentialConfig as any | undefined;\n const normalized = {\n ...input,\n credentialAuthType: credCfg?.credentialAuthType ?? credCfg?.authType,\n credentialSourceType: credCfg?.credentialSourceType ?? credCfg?.sourceType,\n credentialPublicConfig: credCfg?.credentialPublicConfig ?? credCfg?.publicConfig,\n credentialSecret: credCfg?.credentialSecret ?? credCfg?.secret,\n };\n\n // Ensure users field is always present in credentialPublicConfig\n if (normalized.credentialPublicConfig) {\n const publicConfig = normalized.credentialPublicConfig as any;\n if (!('users' in publicConfig)) {\n publicConfig.users = [];\n }\n }\n\n // Special-case: tests may provide a simplified Basic auth shape\n if (normalized.credentialAuthType === 'basic') {\n const pub = normalized.credentialPublicConfig ?? {};\n // If tests provided `username` and `secret`, convert to users array\n if (pub.username) {\n normalized.credentialPublicConfig = {\n users: [\n {\n username: pub.username,\n password: normalized.credentialSecret ?? '',\n },\n ],\n };\n // server validation expects no credentialSecret for basic\n normalized.credentialSecret = '';\n }\n }\n const result = await this.controlApi.createCredential({\n input: new $AgentRun.CreateCredentialInput(normalized),\n config: cfg,\n });\n\n return new Credential(result);\n } catch (error) {\n if (error instanceof HTTPError) {\n throw error.toResourceError('Credential', params?.input?.credentialName);\n }\n\n throw error;\n }\n };\n\n /**\n * Delete a Credential\n */\n delete = async (params: { name: string; config?: Config }): Promise<Credential> => {\n try {\n const { name, config } = params;\n const cfg = Config.withConfigs(this.config, config);\n const result = await this.controlApi.deleteCredential({\n credentialName: name,\n config: cfg,\n });\n\n return new Credential(result);\n } catch (error) {\n if (error instanceof HTTPError) {\n throw error.toResourceError('Credential', params?.name);\n }\n\n throw error;\n }\n };\n\n /**\n * Update a Credential\n */\n update = async (params: {\n name: string;\n input: CredentialUpdateInput;\n config?: Config;\n }): Promise<Credential> => {\n try {\n const { name, input, config } = params;\n const cfg = Config.withConfigs(this.config, config);\n const credCfg = input.credentialConfig as any | undefined;\n const normalized: any = { ...input };\n if (credCfg) {\n normalized.credentialAuthType = credCfg?.credentialAuthType ?? credCfg?.authType;\n normalized.credentialSourceType = credCfg?.credentialSourceType ?? credCfg?.sourceType;\n normalized.credentialPublicConfig =\n credCfg?.credentialPublicConfig ?? credCfg?.publicConfig;\n normalized.credentialSecret = credCfg?.credentialSecret ?? credCfg?.secret;\n\n // Ensure users field is always present in credentialPublicConfig\n if (normalized.credentialPublicConfig) {\n const publicConfig = normalized.credentialPublicConfig as any;\n if (!('users' in publicConfig)) {\n publicConfig.users = [];\n }\n }\n\n if (normalized.credentialAuthType === 'basic') {\n const pub = normalized.credentialPublicConfig ?? {};\n if (pub.username) {\n normalized.credentialPublicConfig = {\n users: [\n {\n username: pub.username,\n password: normalized.credentialSecret ?? '',\n },\n ],\n };\n normalized.credentialSecret = '';\n }\n }\n }\n const result = await this.controlApi.updateCredential({\n credentialName: name,\n input: new $AgentRun.UpdateCredentialInput(normalized),\n config: cfg,\n });\n\n return new Credential(result as any);\n } catch (error) {\n if (error instanceof HTTPError) {\n throw error.toResourceError('Credential', params?.name);\n }\n\n throw error;\n }\n };\n\n /**\n * Get a Credential\n */\n get = async (params: { name: string; config?: Config }): Promise<Credential> => {\n try {\n const { name, config } = params;\n const cfg = Config.withConfigs(this.config, config);\n\n const result = await this.controlApi.getCredential({\n credentialName: name,\n config: cfg,\n });\n return new Credential(result as any);\n } catch (error) {\n if (error instanceof HTTPError) {\n throw error.toResourceError('Credential', params?.name);\n }\n\n throw error;\n }\n };\n\n /**\n * List Credentials\n */\n list = async (params?: {\n input?: CredentialListInput;\n config?: Config;\n }): Promise<CredentialListOutput[]> => {\n try {\n const { input, config } = params ?? {};\n const cfg = Config.withConfigs(this.config, config);\n const results = await this.controlApi.listCredentials({\n input: new $AgentRun.ListCredentialsRequest({ ...input }),\n config: cfg,\n });\n\n return results.items?.map(item => new CredentialListOutput(item as any)) ?? [];\n } catch (error) {\n if (error instanceof HTTPError) {\n throw error.toResourceError('Credential');\n }\n\n throw error;\n }\n };\n}\n","/**\n * Credential Resource\n *\n * 此模块定义 Credential 资源类。\n * This module defines the Credential resource class.\n */\n\nimport { Config } from '../utils/config';\nimport { listAllResourcesFunction, updateObjectProperties } from '../utils/resource';\n\nimport { ResourceBase } from '../utils/resource';\nimport { CredentialClient } from './client';\nimport {\n CredentialAuthType,\n CredentialCreateInput,\n CredentialInterface,\n CredentialSourceType,\n CredentialUpdateInput,\n RelatedResource,\n} from './model';\n\nexport class Credential extends ResourceBase implements CredentialInterface {\n credentialName?: string;\n /** 描述 */\n description?: string;\n /** 是否启用 */\n enabled?: boolean;\n credentialId?: string;\n createdAt?: string;\n updatedAt?: string;\n relatedResources?: RelatedResource[];\n /** 凭证认证类型 */\n credentialAuthType?: CredentialAuthType;\n /** 凭证来源类型 */\n credentialSourceType?: CredentialSourceType;\n /** 凭证公共配置 */\n credentialPublicConfig?: Record<string, any>;\n /** 凭证密钥 */\n credentialSecret?: string;\n\n protected _config?: Config;\n\n constructor(data?: any, config?: Config) {\n super();\n\n if (data) updateObjectProperties(this, data);\n this._config = config;\n }\n\n private static getClient = () => {\n return new CredentialClient();\n };\n\n /**\n * Create a new Credential\n */\n static create = async (paramsOrInput: any) => {\n // Backwards compatibility: allow calling Credential.create(input)\n const hasInputProp = paramsOrInput && paramsOrInput.input !== undefined;\n const input: CredentialCreateInput = hasInputProp ? paramsOrInput.input : paramsOrInput;\n const config: Config | undefined = hasInputProp ? paramsOrInput.config : undefined;\n return await Credential.getClient().create({ input, config });\n };\n\n /**\n * Delete a Credential by name\n */\n static delete = async (paramsOrName: any) => {\n // Accept either (name: string) or ({ name, config })\n const isString = typeof paramsOrName === 'string';\n const name: string = isString ? paramsOrName : paramsOrName.name;\n const config: Config | undefined = isString ? undefined : paramsOrName.config;\n return await Credential.getClient().delete({ name, config });\n };\n\n /**\n * Update a Credential by name\n */\n static update = async (paramsOrName: any) => {\n // Accept either (name, input) wrapped as object or ({ name, input, config })\n const name: string = paramsOrName.name;\n const input: CredentialUpdateInput = paramsOrName.input;\n const config: Config | undefined = paramsOrName.config;\n return await Credential.getClient().update({ name, input, config });\n };\n\n /**\n * Get a Credential by name\n */\n static get = async (paramsOrName: any) => {\n // Accept either name string or { name, config }\n const isString = typeof paramsOrName === 'string';\n const name: string = isString ? paramsOrName : paramsOrName.name;\n const config: Config | undefined = isString ? undefined : paramsOrName.config;\n return await Credential.getClient().get({ name, config });\n };\n\n /**\n * List all Credentials (with pagination)\n */\n static list = async (paramsOrUndefined?: any) => {\n const input = paramsOrUndefined?.input ?? paramsOrUndefined;\n const config: Config | undefined = paramsOrUndefined?.config;\n return await Credential.getClient().list({ input, config });\n };\n\n static listAll = listAllResourcesFunction(this.list);\n\n /**\n * Delete this credential\n */\n delete = async (params?: any) => {\n const config: Config | undefined = params?.config;\n if (!this.credentialName) {\n throw new Error('credentialName is required to delete a Credential');\n }\n\n const result = await Credential.delete({\n name: this.credentialName,\n config: config ?? this._config,\n });\n updateObjectProperties(this, result);\n return this;\n };\n\n /**\n * Update this credential\n */\n update = async (params: any) => {\n // Allow calling update(updateInput) for backward compatibility\n const hasInputProp = params && params.input !== undefined;\n const input: CredentialUpdateInput = hasInputProp ? params.input : params;\n const config: Config | undefined = hasInputProp ? params.config : undefined;\n\n if (!this.credentialName) {\n throw new Error('credentialName is required to update a Credential');\n }\n\n const result = await Credential.update({\n name: this.credentialName,\n input,\n config: config ?? this._config,\n });\n\n updateObjectProperties(this, result);\n return this;\n };\n\n /**\n * Refresh this credential's data\n */\n get = async (params?: any): Promise<Credential> => {\n const config: Config | undefined = params?.config;\n if (!this.credentialName) {\n throw new Error('credentialName is required to refresh a Credential');\n }\n\n const result = await Credential.get({\n name: this.credentialName,\n config: config ?? this._config,\n });\n updateObjectProperties(this, result);\n return this;\n };\n}\n","/**\n * Model Proxy 高层 API / Model Proxy High-Level API\n *\n * 此模块定义模型代理资源的高级API。\n * This module defines the high-level API for model proxy resources.\n */\n\nimport * as _ from 'lodash';\n\nimport { Config } from '../utils/config';\nimport { listAllResourcesFunction, ResourceBase } from '../utils/resource';\n\nimport { ModelAPI, ModelInfo } from './api/model-api';\nimport {\n BackendType,\n ModelProxyCreateInput,\n ModelProxyImmutableProps,\n ModelProxyListInput,\n ModelProxyMutableProps,\n ModelProxySystemProps,\n ModelProxyUpdateInput,\n ProxyMode,\n} from './model';\n\n/**\n * 模型代理 / Model Proxy\n */\nexport class ModelProxy\n extends ResourceBase\n implements ModelProxyImmutableProps, ModelProxyMutableProps, ModelProxySystemProps\n{\n // ImmutableProps\n modelType?: ModelProxyImmutableProps['modelType'];\n\n // MutableProps\n credentialName?: string;\n description?: string;\n networkConfiguration?: ModelProxyMutableProps['networkConfiguration'];\n tags?: string[];\n cpu?: number;\n litellmVersion?: string;\n memory?: number;\n modelProxyName?: string;\n proxyModel?: ProxyMode;\n serviceRegionId?: string;\n proxyConfig?: ModelProxyMutableProps['proxyConfig'];\n executionRoleArn?: string;\n\n // SystemProps\n endpoint?: string;\n functionName?: string;\n modelProxyId?: string;\n createdAt?: string;\n lastUpdatedAt?: string;\n declare status?: ModelProxySystemProps['status'];\n\n private modelApi: ModelAPI;\n\n constructor() {\n super();\n this.modelApi = new ModelAPI(this.modelInfo);\n this.completion = this.modelApi.completion;\n this.embedding = this.modelApi.embedding;\n }\n\n completion: (typeof ModelAPI)['prototype']['completion'];\n embedding: (typeof ModelAPI)['prototype']['embedding'];\n\n /**\n * 获取客户端 / Get client\n *\n * @returns ModelClient 实例\n */\n private static getClient() {\n // 延迟导入以避免循环依赖\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const { ModelClient } = require('./client');\n return new ModelClient();\n }\n\n uniqIdCallback = () => this.modelProxyId;\n\n /**\n * 创建模型代理 / Create model proxy\n *\n * @param params - 参数 / Parameters\n * @returns 创建的模型代理对象 / Created model proxy object\n */\n static async create(params: {\n input: ModelProxyCreateInput;\n config?: Config;\n }): Promise<ModelProxy> {\n const { input, config } = params;\n return await this.getClient().create({ input, config });\n }\n\n /**\n * 根据名称删除模型代理 / Delete model proxy by name\n *\n * @param params - 参数 / Parameters\n * @returns 删除的模型代理对象 / Deleted model proxy object\n */\n static async delete(params: { name: string; config?: Config }): Promise<ModelProxy> {\n const { name, config } = params;\n return await this.getClient().delete({\n name,\n backendType: BackendType.PROXY,\n config,\n });\n }\n\n /**\n * 根据名称更新模型代理 / Update model proxy by name\n *\n * @param params - 参数 / Parameters\n * @returns 更新后的模型代理对象 / Updated model proxy object\n */\n static async update(params: {\n name: string;\n input: ModelProxyUpdateInput;\n config?: Config;\n }): Promise<ModelProxy> {\n const { name, input, config } = params;\n return await this.getClient().update({ name, input, config });\n }\n\n /**\n * 根据名称获取模型代理 / Get model proxy by name\n *\n * @param params - 参数 / Parameters\n * @returns 模型代理对象 / Model proxy object\n */\n static async get(params: { name: string; config?: Config }): Promise<ModelProxy> {\n const { name, config } = params;\n return await this.getClient().get({\n name,\n backendType: BackendType.PROXY,\n config,\n });\n }\n\n /**\n * 列出模型代理(分页)/ List model proxies (paginated)\n *\n * @param pageInput - 分页参数 / Pagination parameters\n * @param config - 配置 / Configuration\n * @param kwargs - 其他查询参数 / Other query parameters\n * @returns 模型代理列表 / Model proxy list\n */\n static list = async (params?: {\n input?: ModelProxyListInput;\n config?: Config;\n }): Promise<ModelProxy[]> => {\n const { input, config } = params ?? {};\n\n return await this.getClient().list({\n input: {\n modelProxyName: undefined, // 标识这是 ModelProxyListInput\n ...input,\n } as ModelProxyListInput,\n config,\n });\n };\n\n static listAll = listAllResourcesFunction(this.list);\n\n /**\n * 更新模型代理 / Update model proxy\n *\n * @param input - 模型代理更新输入参数 / Model proxy update input parameters\n * @param config - 配置 / Configuration\n * @returns 更新后的模型代理对象 / Updated model proxy object\n */\n update = async (params: {\n input: ModelProxyUpdateInput;\n config?: Config;\n }): Promise<ModelProxy> => {\n const { input, config } = params;\n if (!this.modelProxyName) {\n throw new Error('modelProxyName is required to update a ModelProxy');\n }\n\n const result = await ModelProxy.update({\n name: this.modelProxyName,\n input,\n config,\n });\n this.updateSelf(result);\n\n return this;\n };\n\n /**\n * 删除模型代理 / Delete model proxy\n *\n * @param params - 参数 / Parameters\n * @returns 删除的模型代理对象 / Deleted model proxy object\n */\n delete = async (params?: { config?: Config }): Promise<ModelProxy> => {\n if (!this.modelProxyName) {\n throw new Error('modelProxyName is required to delete a ModelProxy');\n }\n\n return await ModelProxy.delete({\n name: this.modelProxyName,\n config: params?.config,\n });\n };\n\n /**\n * 刷新模型代理信息 / Refresh model proxy information\n *\n * @param params - 参数 / Parameters\n * @returns 刷新后的模型代理对象 / Refreshed model proxy object\n */\n get = async (params?: { config?: Config }): Promise<ModelProxy> => {\n if (!this.modelProxyName) {\n throw new Error('modelProxyName is required to refresh a ModelProxy');\n }\n\n const result = await ModelProxy.get({\n name: this.modelProxyName,\n config: params?.config,\n });\n this.updateSelf(result);\n\n return this;\n };\n\n /**\n * 获取模型信息 / Get model information\n *\n * @param params - 参数 / Parameters\n * @param params.config - 配置 / Configuration\n * @returns 模型基本信息 / Model base information\n */\n modelInfo = async (params?: { config?: Config }): Promise<ModelInfo> => {\n const cfg = Config.withConfigs(this._config, params?.config);\n\n if (!this.modelProxyName) {\n throw new Error('modelProxyName is required');\n }\n if (!this.endpoint) {\n throw new Error('endpoint is required');\n }\n\n let apiKey = '';\n\n // 如果有 credentialName,从 Credential 获取\n if (this.credentialName) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const { Credential } = require('../credential/credential');\n const credential = await Credential.get({\n name: this.credentialName,\n config: cfg,\n });\n apiKey = credential.credentialSecret || '';\n }\n\n // 根据 proxyMode 确定默认模型\n const defaultModel =\n this.proxyModel === 'single'\n ? _.get(this.proxyConfig, 'endpoints[0].modelNames[0]')\n : this.modelProxyName;\n\n return {\n apiKey: apiKey,\n baseUrl: this.endpoint,\n model: defaultModel,\n headers: cfg.headers,\n };\n };\n}\n","/**\n * Model Service 高层 API / Model Service High-Level API\n *\n * 此模块定义模型服务资源的高级API。\n * This module defines the high-level API for model service resources.\n */\n\nimport { Config } from '../utils/config';\nimport { listAllResourcesFunction, ResourceBase } from '../utils/resource';\nimport { ModelAPI } from './api/model-api';\n\nimport {\n BackendType,\n ModelServiceCreateInput,\n ModelServiceImmutableProps,\n ModelServiceListInput,\n ModelServiceMutableProps,\n ModelServiceSystemProps,\n ModelServiceUpdateInput,\n} from './model';\n\n/**\n * 模型服务 / Model Service\n */\nexport class ModelService\n extends ResourceBase\n implements ModelServiceImmutableProps, ModelServiceMutableProps, ModelServiceSystemProps\n{\n // ImmutableProps\n modelInfoConfigs?: ModelServiceImmutableProps['modelInfoConfigs'];\n modelServiceName?: string;\n provider?: string;\n\n // MutableProps\n credentialName?: string;\n description?: string;\n networkConfiguration?: ModelServiceMutableProps['networkConfiguration'];\n tags?: string[];\n providerSettings?: ModelServiceMutableProps['providerSettings'];\n\n // SystemProps\n modelServiceId?: string;\n createdAt?: string;\n lastUpdatedAt?: string;\n declare status?: ModelServiceSystemProps['status'];\n\n // CommonProps\n modelType?: ModelServiceImmutableProps['modelType'];\n\n private modelApi: ModelAPI;\n constructor() {\n super();\n this.modelApi = new ModelAPI(this.modelInfo);\n this.completion = this.modelApi.completion;\n this.embedding = this.modelApi.embedding;\n }\n\n completion: (typeof ModelAPI)['prototype']['completion'];\n embedding: (typeof ModelAPI)['prototype']['embedding'];\n\n /**\n * 获取客户端 / Get client\n *\n * @returns ModelClient 实例\n */\n private static getClient() {\n // 延迟导入以避免循环依赖\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const { ModelClient } = require('./client');\n return new ModelClient();\n }\n\n uniqIdCallback = () => this.modelServiceId;\n\n /**\n * 创建模型服务 / Create model service\n *\n * @param params - 参数 / Parameters\n * @returns 创建的模型服务对象 / Created model service object\n */\n static async create(params: {\n input: ModelServiceCreateInput;\n config?: Config;\n }): Promise<ModelService> {\n const { input, config } = params;\n return await this.getClient().create({ input, config });\n }\n\n /**\n * 根据名称删除模型服务 / Delete model service by name\n *\n * @param params - 参数 / Parameters\n * @returns 删除的模型服务对象 / Deleted model service object\n */\n static async delete(params: { name: string; config?: Config }): Promise<ModelService> {\n const { name, config } = params;\n return await this.getClient().delete({\n name,\n backendType: BackendType.SERVICE,\n config,\n });\n }\n\n /**\n * 根据名称更新模型服务 / Update model service by name\n *\n * @param params - 参数 / Parameters\n * @returns 更新后的模型服务对象 / Updated model service object\n */\n static async update(params: {\n name: string;\n input: ModelServiceUpdateInput;\n config?: Config;\n }): Promise<ModelService> {\n const { name, input, config } = params;\n return await this.getClient().update({ name, input, config });\n }\n\n /**\n * 根据名称获取模型服务 / Get model service by name\n *\n * @param params - 参数 / Parameters\n * @returns 模型服务对象 / Model service object\n */\n static async get(params: { name: string; config?: Config }): Promise<ModelService> {\n const { name, config } = params;\n return await this.getClient().get({\n name,\n backendType: BackendType.SERVICE,\n config,\n });\n }\n\n /**\n * 列出模型服务(分页)/ List model services (paginated)\n *\n * @param pageInput - 分页参数 / Pagination parameters\n * @param config - 配置 / Configuration\n * @param kwargs - 其他查询参数 / Other query parameters\n * @returns 模型服务列表 / Model service list\n */\n static list = async (params?: {\n input?: ModelServiceListInput;\n config?: Config;\n }): Promise<ModelService[]> => {\n const { input, config } = params ?? {};\n\n return await this.getClient().list({\n input: {\n ...input,\n } as ModelServiceListInput,\n config,\n });\n };\n\n static listAll = listAllResourcesFunction(this.list);\n\n /**\n * 更新模型服务 / Update model service\n *\n * @param params - 参数 / Parameters\n * @returns 更新后的模型服务对象 / Updated model service object\n */\n update = async (params: {\n input: ModelServiceUpdateInput;\n config?: Config;\n }): Promise<ModelService> => {\n const { input, config } = params;\n if (!this.modelServiceName) {\n throw new Error('modelServiceName is required to update a ModelService');\n }\n\n const result = await ModelService.update({\n name: this.modelServiceName,\n input,\n config,\n });\n this.updateSelf(result);\n\n return this;\n };\n\n /**\n * 删除模型服务 / Delete model service\n *\n * @param config - 配置 / Configuration\n * @returns 删除的模型服务对象 / Deleted model service object\n */\n delete = async (params?: { config?: Config }): Promise<ModelService> => {\n if (!this.modelServiceName) {\n throw new Error('modelServiceName is required to delete a ModelService');\n }\n\n return await ModelService.delete({\n name: this.modelServiceName,\n config: params?.config,\n });\n };\n\n /**\n * 刷新模型服务信息 / Refresh model service information\n *\n * @param config - 配置 / Configuration\n * @returns 刷新后的模型服务对象 / Refreshed model service object\n */\n get = async (params?: { config?: Config }): Promise<ModelService> => {\n if (!this.modelServiceName) {\n throw new Error('modelServiceName is required to refresh a ModelService');\n }\n\n const result = await ModelService.get({\n name: this.modelServiceName,\n config: params?.config,\n });\n this.updateSelf(result);\n\n return this;\n };\n\n /**\n * 获取模型信息 / Get model information\n *\n * @param params - 参数 / Parameters\n * @param params.config - 配置 / Configuration\n * @returns 模型基本信息 / Model base information\n */\n modelInfo = async (params?: {\n config?: Config;\n }): Promise<{\n apiKey: string;\n baseUrl: string;\n model?: string;\n headers?: Record<string, string>;\n provider?: string;\n }> => {\n const cfg = Config.withConfigs(this._config, params?.config);\n\n if (!this.providerSettings) {\n throw new Error('providerSettings is required');\n }\n if (!this.providerSettings.baseUrl) {\n throw new Error('providerSettings.baseUrl is required');\n }\n\n let apiKey = this.providerSettings.apiKey || '';\n\n // 如果没有 apiKey 但有 credentialName,从 Credential 获取\n if (!apiKey && this.credentialName) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const { Credential } = require('../credential/credential');\n const credential = await Credential.get({\n name: this.credentialName,\n config: cfg,\n });\n apiKey = credential.credentialSecret || '';\n }\n\n const defaultModel =\n this.providerSettings.modelNames && this.providerSettings.modelNames.length > 0\n ? this.providerSettings.modelNames[0]\n : undefined;\n\n return {\n apiKey: apiKey,\n baseUrl: this.providerSettings.baseUrl,\n model: defaultModel,\n headers: cfg.headers,\n provider: this.provider,\n };\n };\n}\n","/**\n * Model Service 客户端 / Model Service Client\n *\n * 此模块提供模型服务和模型代理的客户端API。\n * This module provides the client API for model services and model proxies.\n */\n\nimport * as $AgentRun from '@alicloud/agentrun20250910';\nimport * as _ from 'lodash';\n\nimport { Config } from '../utils/config';\nimport { HTTPError } from '../utils/exception';\n\nimport { ModelControlAPI } from './api/control';\nimport {\n BackendType,\n ModelProxyCreateInput,\n ModelProxyListInput,\n ModelProxyUpdateInput,\n ModelServiceCreateInput,\n ModelServiceListInput,\n ModelServiceUpdateInput,\n} from './model';\nimport { ModelProxy } from './model-proxy';\nimport { ModelService } from './model-service';\n\n/**\n * Model Service 客户端 / Model Service Client\n *\n * 提供模型服务和模型代理的创建、删除、更新和查询功能。\n * Provides create, delete, update and query functions for model services and model proxies.\n */\nexport class ModelClient {\n private config?: Config;\n private controlApi: ModelControlAPI;\n\n /**\n * 初始化客户端 / Initialize client\n *\n * @param config - 配置对象,可选 / Configuration object, optional\n */\n constructor(config?: Config) {\n this.config = config;\n this.controlApi = new ModelControlAPI(config);\n }\n\n /**\n * 创建模型服务\n * Create model service\n *\n * @param params - 参数 / Parameters\n * @returns 创建的对象 / Created object\n */\n create = async (params: {\n input: ModelServiceCreateInput | ModelProxyCreateInput;\n config?: Config;\n }): Promise<ModelService | ModelProxy> => {\n const { input, config } = params;\n const cfg = Config.withConfigs(this.config, config);\n\n try {\n if ('modelProxyName' in input) {\n // 处理 ModelProxyCreateInput\n const modelProxyInput = input as ModelProxyCreateInput;\n\n // 如果没有设置 proxyModel,根据 endpoints 数量自动判断\n if (!modelProxyInput.proxyModel) {\n const endpoints = _.get(modelProxyInput, 'proxyConfig.endpoints', []);\n modelProxyInput.proxyModel = endpoints.length > 1 ? 'multi' : 'single';\n }\n\n const createInput = new $AgentRun.CreateModelProxyInput({\n ...modelProxyInput,\n cpu: modelProxyInput.cpu ?? 2, // 默认值 2\n memory: modelProxyInput.memory ?? 4096, // 默认值 4096\n proxyMode: modelProxyInput.proxyModel,\n });\n\n const result = await this.controlApi.createModelProxy({\n input: createInput,\n config: cfg,\n });\n const proxy = new ModelProxy();\n Object.assign(proxy, result);\n return proxy;\n } else {\n // 处理 ModelServiceCreateInput\n const modelServiceInput = input as ModelServiceCreateInput;\n\n const createInput = new $AgentRun.CreateModelServiceInput({\n ...modelServiceInput,\n });\n\n const result = await this.controlApi.createModelService({\n input: createInput,\n config: cfg,\n });\n const service = new ModelService();\n Object.assign(service, result);\n return service;\n }\n } catch (e) {\n if (e instanceof HTTPError) {\n const name =\n 'modelProxyName' in input\n ? (input as ModelProxyCreateInput).modelProxyName\n : (input as ModelServiceCreateInput).modelServiceName;\n throw e.toResourceError('Model', name);\n }\n throw e;\n }\n };\n\n /**\n * 删除模型服务\n * Delete model service\n *\n * @param params - 参数 / Parameters\n * @returns 删除的对象 / Deleted object\n *\n * @throws ResourceNotExistError - 模型服务不存在 / Model service does not exist\n */\n delete = async (params: {\n name: string;\n backendType?: BackendType;\n config?: Config;\n }): Promise<ModelService | ModelProxy> => {\n const { name, backendType, config } = params;\n const cfg = Config.withConfigs(this.config, config);\n let error: HTTPError | null = null;\n\n // 如果是 proxy 或未指定类型,先尝试删除 proxy\n if (backendType === 'proxy' || backendType === undefined) {\n try {\n const result = await this.controlApi.deleteModelProxy({\n modelProxyName: name,\n config: cfg,\n });\n const proxy = new ModelProxy();\n Object.assign(proxy, result);\n return proxy;\n } catch (e) {\n if (e instanceof HTTPError) {\n error = e;\n } else {\n throw e;\n }\n }\n }\n\n // 如果明确指定为 proxy 且出错,抛出错误\n if (backendType === 'proxy' && error !== null) {\n throw error.toResourceError('Model', name);\n }\n\n // 尝试删除 service\n try {\n const result = await this.controlApi.deleteModelService({\n modelServiceName: name,\n config: cfg,\n });\n const service = new ModelService();\n Object.assign(service, result);\n return service;\n } catch (e) {\n if (e instanceof HTTPError) {\n throw e.toResourceError('Model', name);\n }\n throw e;\n }\n };\n\n /**\n * 更新模型服务\n * Update model service\n *\n * @param params - 参数 / Parameters\n * @returns 更新后的模型服务对象 / Updated model service object\n *\n * @throws ResourceNotExistError - 模型服务不存在 / Model service does not exist\n */\n update = async (params: {\n name: string;\n input: ModelServiceUpdateInput | ModelProxyUpdateInput;\n config?: Config;\n }): Promise<ModelService | ModelProxy> => {\n const { name, input, config } = params;\n const cfg = Config.withConfigs(this.config, config);\n\n if ('proxyModel' in input || 'executionRoleArn' in input) {\n // 处理 ModelProxyUpdateInput\n const modelProxyInput = input as ModelProxyUpdateInput;\n\n try {\n // 如果没有设置 proxyModel,根据 endpoints 数量自动判断\n if (!modelProxyInput.proxyModel && modelProxyInput.proxyModel !== undefined) {\n const endpoints = _.get(modelProxyInput, 'proxyConfig.endpoints', []);\n modelProxyInput.proxyModel = endpoints.length > 1 ? 'multi' : 'single';\n }\n\n const updateInput = new $AgentRun.UpdateModelProxyInput({\n ...modelProxyInput,\n proxyMode: modelProxyInput.proxyModel,\n });\n\n const result = await this.controlApi.updateModelProxy({\n modelProxyName: name,\n input: updateInput,\n config: cfg,\n });\n const proxy = new ModelProxy();\n Object.assign(proxy, result);\n return proxy;\n } catch (e) {\n if (e instanceof HTTPError) {\n throw e.toResourceError('Model', name);\n }\n throw e;\n }\n } else {\n // 处理 ModelServiceUpdateInput\n const modelServiceInput = input as ModelServiceUpdateInput;\n\n try {\n const updateInput = new $AgentRun.UpdateModelServiceInput({\n ...modelServiceInput,\n });\n\n const result = await this.controlApi.updateModelService({\n modelServiceName: name,\n input: updateInput,\n config: cfg,\n });\n const service = new ModelService();\n Object.assign(service, result);\n return service;\n } catch (e) {\n if (e instanceof HTTPError) {\n throw e.toResourceError('Model', name);\n }\n throw e;\n }\n }\n };\n\n /**\n * 获取模型服务\n * Get model service\n *\n * @param params - 参数 / Parameters\n * @returns 模型服务对象 / Model service object\n *\n * @throws ResourceNotExistError - 模型服务不存在 / Model service does not exist\n */\n get = async (params: {\n name: string;\n backendType?: BackendType;\n config?: Config;\n }): Promise<ModelService | ModelProxy> => {\n const { name, backendType, config } = params;\n const cfg = Config.withConfigs(this.config, config);\n let error: HTTPError | null = null;\n\n // 如果是 proxy 或未指定类型,先尝试获取 proxy\n if (backendType === 'proxy' || backendType === undefined) {\n try {\n const result = await this.controlApi.getModelProxy({\n modelProxyName: name,\n config: cfg,\n });\n const proxy = new ModelProxy();\n Object.assign(proxy, result);\n return proxy;\n } catch (e) {\n if (e instanceof HTTPError) {\n error = e;\n } else {\n throw e;\n }\n }\n }\n\n // 如果明确指定为 proxy 且出错,抛出错误\n if (backendType === 'proxy' && error !== null) {\n throw error.toResourceError('Model', name);\n }\n\n // 尝试获取 service\n try {\n const result = await this.controlApi.getModelService({\n modelServiceName: name,\n config: cfg,\n });\n const service = new ModelService();\n Object.assign(service, result);\n return service;\n } catch (e) {\n if (e instanceof HTTPError) {\n throw e.toResourceError('Model', name);\n }\n throw e;\n }\n };\n\n /**\n * 列出模型服务\n * List model services\n *\n * @param params - 参数 / Parameters\n * @returns 模型服务列表 / Model service list\n */\n list = async (params?: {\n input?: ModelServiceListInput | ModelProxyListInput;\n config?: Config;\n }): Promise<ModelService[] | ModelProxy[]> => {\n const { input, config } = params ?? {};\n const cfg = Config.withConfigs(this.config, config);\n\n if (input && 'modelProxyName' in input) {\n // 处理 ModelProxyListInput\n const modelProxyInput = input as ModelProxyListInput;\n\n const request = new $AgentRun.ListModelProxiesRequest({\n ...modelProxyInput,\n });\n\n const result = await this.controlApi.listModelProxies({\n input: request,\n config: cfg,\n });\n return (result.items || []).map(item => {\n const proxy = new ModelProxy();\n Object.assign(proxy, item);\n return proxy;\n });\n } else {\n // 处理 ModelServiceListInput 或无参数(默认列出 ModelService)\n const modelServiceInput = (input ?? {}) as ModelServiceListInput;\n\n const request = new $AgentRun.ListModelServicesRequest({\n ...modelServiceInput,\n });\n\n const result = await this.controlApi.listModelServices({\n input: request,\n config: cfg,\n });\n return (result.items || []).map(item => {\n const service = new ModelService();\n Object.assign(service, item);\n return service;\n });\n }\n };\n}\n","/**\n * Model module exports\n */\n\nimport '@/utils/version-check';\n\nexport { ModelClient } from './client';\nexport { ModelService } from './model-service';\nexport { ModelProxy } from './model-proxy';\n\n// Re-export ControlAPI for advanced usage\nexport { ControlAPI as ModelControlAPI } from '../utils/control-api';\n\nexport { BackendType, ModelType, Provider } from './model';\n\nexport type {\n ProviderSettings,\n ModelFeatures,\n ModelProperties,\n ModelParameterRule,\n ModelInfoConfig,\n ModelServiceCreateInput,\n ModelServiceUpdateInput,\n ModelServiceListInput,\n ModelServiceData,\n ProxyConfigEndpoint,\n ProxyConfigFallback,\n ProxyConfigPolicies,\n ProxyConfig,\n ModelProxyCreateInput,\n ModelProxyUpdateInput,\n ModelProxyListInput,\n ModelProxyData,\n} from './model';\n"]}
@@ -0,0 +1,97 @@
1
+ import { C as Config } from '../config-07gMelJP.cjs';
2
+ import { i as ModelServiceCreateInput, e as ModelProxyCreateInput, h as ModelService, d as ModelProxy, B as BackendType, k as ModelServiceUpdateInput, g as ModelProxyUpdateInput, j as ModelServiceListInput, f as ModelProxyListInput } from '../model-service-VpzBb7rV.cjs';
3
+ export { M as ModelFeatures, a as ModelInfoConfig, b as ModelParameterRule, c as ModelProperties, r as ModelProxyData, s as ModelServiceData, l as ModelType, P as Provider, m as ProviderSettings, n as ProxyConfig, o as ProxyConfigEndpoint, p as ProxyConfigFallback, q as ProxyConfigPolicies } from '../model-service-VpzBb7rV.cjs';
4
+ export { C as ModelControlAPI } from '../control-api-BWD4eua5.cjs';
5
+ import '../resource-CQovFUeh.cjs';
6
+ import '../model--I90nCqy.cjs';
7
+ import 'ai';
8
+
9
+ /**
10
+ * Model Service 客户端 / Model Service Client
11
+ *
12
+ * 此模块提供模型服务和模型代理的客户端API。
13
+ * This module provides the client API for model services and model proxies.
14
+ */
15
+
16
+ /**
17
+ * Model Service 客户端 / Model Service Client
18
+ *
19
+ * 提供模型服务和模型代理的创建、删除、更新和查询功能。
20
+ * Provides create, delete, update and query functions for model services and model proxies.
21
+ */
22
+ declare class ModelClient {
23
+ private config?;
24
+ private controlApi;
25
+ /**
26
+ * 初始化客户端 / Initialize client
27
+ *
28
+ * @param config - 配置对象,可选 / Configuration object, optional
29
+ */
30
+ constructor(config?: Config);
31
+ /**
32
+ * 创建模型服务
33
+ * Create model service
34
+ *
35
+ * @param params - 参数 / Parameters
36
+ * @returns 创建的对象 / Created object
37
+ */
38
+ create: (params: {
39
+ input: ModelServiceCreateInput | ModelProxyCreateInput;
40
+ config?: Config;
41
+ }) => Promise<ModelService | ModelProxy>;
42
+ /**
43
+ * 删除模型服务
44
+ * Delete model service
45
+ *
46
+ * @param params - 参数 / Parameters
47
+ * @returns 删除的对象 / Deleted object
48
+ *
49
+ * @throws ResourceNotExistError - 模型服务不存在 / Model service does not exist
50
+ */
51
+ delete: (params: {
52
+ name: string;
53
+ backendType?: BackendType;
54
+ config?: Config;
55
+ }) => Promise<ModelService | ModelProxy>;
56
+ /**
57
+ * 更新模型服务
58
+ * Update model service
59
+ *
60
+ * @param params - 参数 / Parameters
61
+ * @returns 更新后的模型服务对象 / Updated model service object
62
+ *
63
+ * @throws ResourceNotExistError - 模型服务不存在 / Model service does not exist
64
+ */
65
+ update: (params: {
66
+ name: string;
67
+ input: ModelServiceUpdateInput | ModelProxyUpdateInput;
68
+ config?: Config;
69
+ }) => Promise<ModelService | ModelProxy>;
70
+ /**
71
+ * 获取模型服务
72
+ * Get model service
73
+ *
74
+ * @param params - 参数 / Parameters
75
+ * @returns 模型服务对象 / Model service object
76
+ *
77
+ * @throws ResourceNotExistError - 模型服务不存在 / Model service does not exist
78
+ */
79
+ get: (params: {
80
+ name: string;
81
+ backendType?: BackendType;
82
+ config?: Config;
83
+ }) => Promise<ModelService | ModelProxy>;
84
+ /**
85
+ * 列出模型服务
86
+ * List model services
87
+ *
88
+ * @param params - 参数 / Parameters
89
+ * @returns 模型服务列表 / Model service list
90
+ */
91
+ list: (params?: {
92
+ input?: ModelServiceListInput | ModelProxyListInput;
93
+ config?: Config;
94
+ }) => Promise<ModelService[] | ModelProxy[]>;
95
+ }
96
+
97
+ export { BackendType, ModelClient, ModelProxy, ModelProxyCreateInput, ModelProxyListInput, ModelProxyUpdateInput, ModelService, ModelServiceCreateInput, ModelServiceListInput, ModelServiceUpdateInput };