{"version":3,"sources":["../src/metorial.ts"],"names":["createMetorialCoreSDK","MetorialMcpSession"],"mappings":"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","file":"index.cjs","sourcesContent":["import { MetorialCoreSDK, createMetorialCoreSDK } from '@metorial/core';\nimport {\n  MetorialMcpSession,\n  MetorialMcpSessionInit,\n  MetorialMcpSessionInitProviders,\n  MetorialMcpToolManager\n} from '@metorial/mcp-session';\n\nexport type {\n  MetorialMcpSession,\n  MetorialMcpSessionInit,\n  MetorialMcpSessionInitProviders\n} from '@metorial/mcp-session';\n\ntype MetorialSession = { getToolManager(): Promise<MetorialMcpToolManager> };\n\nexport interface MetorialAdapter<T> {\n  __resolve(session: MetorialSession): Promise<T>;\n}\n\nexport class Metorial {\n  private readonly sdk: MetorialCoreSDK;\n\n  constructor(init: Omit<Parameters<typeof createMetorialCoreSDK>[0], 'apiVersion'>) {\n    this.sdk = createMetorialCoreSDK(init);\n  }\n\n  get providers() {\n    return this.sdk.providers;\n  }\n\n  get providerDeployments() {\n    let deployments = this.sdk.providerDeployments;\n    Object.assign(deployments.setupSessions, {\n      waitForCompletion: this.waitForSetupSession.bind(this)\n    });\n    return deployments;\n  }\n\n  get sessions() {\n    return this.sdk.sessions;\n  }\n\n  get sessionTemplates() {\n    return this.sdk.sessionTemplates;\n  }\n\n  get providerRuns() {\n    return this.sdk.providerRuns;\n  }\n\n  get instance() {\n    return this.sdk.instance;\n  }\n\n  get publishers() {\n    return this.sdk.publishers;\n  }\n\n  get providerSetupSessions() {\n    return this.sdk.providerSetupSessions;\n  }\n\n  get toolCalls() {\n    return this.sdk.toolCalls;\n  }\n\n  get customProviders() {\n    return this.sdk.customProviders;\n  }\n\n  get integrations() {\n    return this.sdk.integrations;\n  }\n\n  get documents() {\n    return this.sdk.documents;\n  }\n\n  get stores() {\n    return this.sdk.stores;\n  }\n\n  get files() {\n    return this.sdk.files;\n  }\n\n  get skills() {\n    return this.sdk.skills;\n  }\n\n  get callbacks() {\n    return this.sdk.callbacks;\n  }\n\n  get chats() {\n    return this.sdk.chats;\n  }\n\n  get chat() {\n    return this.sdk.chat;\n  }\n\n  get sandbox() {\n    return this.sdk.sandbox;\n  }\n\n  get portals() {\n    return this.sdk.portals;\n  }\n\n  get magicMcp() {\n    return this.sdk.magicMcp;\n  }\n\n  async connect<T>(options: {\n    adapter: MetorialAdapter<T>;\n    providers: MetorialMcpSessionInitProviders;\n    client?: { name?: string; version?: string };\n  }): Promise<T> {\n    let session = await MetorialMcpSession.create(this.sdk, {\n      providers: options.providers,\n      client: options.client\n    });\n\n    return options.adapter.__resolve(session);\n  }\n\n  /** @deprecated Use `metorial.connect()` instead. */\n  async withProviderSession<P, T>(\n    adapter: MetorialAdapter<P> | (() => MetorialAdapter<P>),\n    init: MetorialMcpSessionInit & { streaming?: boolean },\n    action: (input: P & { closeSession: () => Promise<void> }) => Promise<T>\n  ): Promise<T> {\n    let session = await MetorialMcpSession.create(this.sdk, init);\n    let resolved = typeof adapter === 'function' ? adapter() : adapter;\n    let adapterResult = (await resolved.__resolve(session)) as Record<string, unknown>;\n\n    if (\n      adapterResult &&\n      typeof adapterResult === 'object' &&\n      'tools' in adapterResult &&\n      typeof adapterResult.tools === 'function'\n    ) {\n      adapterResult.tools = (adapterResult.tools as () => unknown)();\n    }\n\n    return action({ ...(adapterResult as P), closeSession: async () => {} });\n  }\n\n  async waitForSetupSession(\n    sessions: { id: string } | Array<{ id: string }>,\n    options?: {\n      pollInterval?: number;\n      timeout?: number;\n    }\n  ) {\n    let sessionList = Array.isArray(sessions) ? sessions : [sessions];\n    let pollInterval = Math.max(options?.pollInterval ?? 5000, 2000);\n    let timeout = options?.timeout ?? 600000;\n    let startTime = Date.now();\n\n    if (sessionList.length === 0) {\n      return [];\n    }\n\n    while (true) {\n      if (Date.now() - startTime > timeout) {\n        throw new Error(`Setup session timed out after ${timeout / 1000} seconds`);\n      }\n\n      try {\n        let statuses = await Promise.all(\n          sessionList.map(s => this.sdk.providerDeployments.setupSessions.get(s.id))\n        );\n\n        let failed = statuses.filter(s => s.status === 'failed');\n        if (failed.length > 0) {\n          throw new Error(`${failed.length} setup session(s) failed`);\n        }\n\n        let allCompleted = statuses.every(s => s.status === 'completed');\n        if (allCompleted) {\n          return statuses;\n        }\n\n        await new Promise(resolve => setTimeout(resolve, pollInterval));\n      } catch (error) {\n        if (\n          error instanceof Error &&\n          error.message.includes('setup session') &&\n          (error.message.includes('failed') || error.message.includes('timed out'))\n        ) {\n          throw error;\n        }\n\n        await new Promise(resolve => setTimeout(resolve, pollInterval));\n      }\n    }\n  }\n}\n\nexport default Metorial;\n"]}