{"version":3,"sources":["../../src/ipc/job_proc_executor.ts","../../../node_modules/.pnpm/tsup@8.4.0_@microsoft+api-extractor@7.58.12_@types+node@22.19.1__postcss@8.5.23_tsx@4.23.1_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js"],"sourcesContent":["// SPDX-FileCopyrightText: 2025 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { ChildProcess } from 'node:child_process';\nimport { fork } from 'node:child_process';\nimport { extname } from 'node:path';\nimport type { RunningJobInfo } from '../job.js';\nimport { log } from '../log.js';\nimport type { InferenceExecutor } from './inference_executor.js';\nimport type { JobExecutor } from './job_executor.js';\nimport { JobStatus } from './job_executor.js';\nimport type { IPCMessage } from './message.js';\nimport { type ProcOpts, SupervisedProc } from './supervised_proc.js';\n\nconst currentFileExtension = extname(import.meta.url);\n\nexport class JobProcExecutor extends SupervisedProc implements JobExecutor {\n  #userArgs?: any; // eslint-disable-line @typescript-eslint/no-explicit-any\n  #jobStatus?: JobStatus;\n  #runningJob?: RunningJobInfo;\n  #agent: string;\n  #inferenceExecutor?: InferenceExecutor;\n  #inferenceTasks: Promise<void>[] = [];\n  #logger = log();\n\n  constructor({\n    agent,\n    inferenceExecutor,\n    ...opts\n  }: ProcOpts & {\n    agent: string;\n    inferenceExecutor?: InferenceExecutor;\n  }) {\n    super(opts);\n    this.#agent = agent;\n    this.#inferenceExecutor = inferenceExecutor;\n  }\n\n  get status(): JobStatus {\n    if (this.#jobStatus) {\n      return this.#jobStatus;\n    }\n    throw new Error('job status not available');\n  }\n\n  get userArguments(): any {\n    return this.#userArgs;\n  }\n\n  set userArguments(args: any) {\n    this.#userArgs = args;\n  }\n\n  get runningJob(): RunningJobInfo | undefined {\n    return this.#runningJob;\n  }\n\n  protected get processKind(): string {\n    return 'job';\n  }\n\n  createProcess(): ChildProcess {\n    const forkUrl = new URL(`./job_proc_lazy_main${currentFileExtension}`, import.meta.url);\n\n    // When running via tsx/ts-node (TypeScript files), we need to inherit the parent's\n    // execArgv so the child process can also execute TypeScript with the same loader\n    const isTypeScript = currentFileExtension === '.ts';\n    const forkOptions = isTypeScript ? { execArgv: process.execArgv } : undefined;\n\n    return fork(forkUrl, [this.#agent], forkOptions);\n  }\n\n  async mainTask(proc: ChildProcess) {\n    proc.on('message', (msg: IPCMessage) => {\n      switch (msg.case) {\n        case 'inferenceRequest':\n          this.#inferenceTasks.push(this.#doInferenceTask(proc, msg.value));\n      }\n    });\n  }\n\n  async #doInferenceTask(\n    proc: ChildProcess,\n    req: { method: string; requestId: string; data: unknown },\n  ) {\n    if (!this.#inferenceExecutor) {\n      this.#logger.warn('inference request received but no inference executor');\n      proc.send({\n        case: 'inferenceResponse',\n        value: { requestId: req.requestId, error: new Error('no inference executor') },\n      });\n      return;\n    }\n\n    try {\n      const data = await this.#inferenceExecutor.doInference(req.method, req.data);\n      proc.send({ case: 'inferenceResponse', value: { requestId: req.requestId, data } });\n    } catch (error) {\n      proc.send({ case: 'inferenceResponse', value: { requestId: req.requestId, error } });\n    }\n  }\n\n  async launchJob(info: RunningJobInfo) {\n    if (this.#runningJob) {\n      throw Error('process already has a running job');\n    }\n    if (!this.init.done) {\n      throw Error('process not initialized');\n    }\n    this.#jobStatus = JobStatus.RUNNING;\n    this.#runningJob = info;\n\n    this.proc!.send({ case: 'startJobRequest', value: { runningJob: info } });\n  }\n}\n","// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n  typeof document === 'undefined'\n    ? new URL(`file:${__filename}`).href\n    : (document.currentScript && document.currentScript.src) ||\n      new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACKA,IAAM,mBAAmB,MACvB,OAAO,aAAa,cAChB,IAAI,IAAI,QAAQ,UAAU,EAAE,EAAE,OAC7B,SAAS,iBAAiB,SAAS,cAAc,OAClD,IAAI,IAAI,WAAW,SAAS,OAAO,EAAE;AAEpC,IAAM,gBAAgC,iCAAiB;ADP9D,gCAAqB;AACrB,uBAAwB;AAExB,iBAAoB;AAGpB,0BAA0B;AAE1B,6BAA8C;AAE9C,MAAM,2BAAuB,0BAAQ,aAAe;AAE7C,MAAM,wBAAwB,sCAAsC;AAAA,EACzE;AAAA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,kBAAmC,CAAC;AAAA,EACpC,cAAU,gBAAI;AAAA,EAEd,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GAGG;AACD,UAAM,IAAI;AACV,SAAK,SAAS;AACd,SAAK,qBAAqB;AAAA,EAC5B;AAAA,EAEA,IAAI,SAAoB;AACtB,QAAI,KAAK,YAAY;AACnB,aAAO,KAAK;AAAA,IACd;AACA,UAAM,IAAI,MAAM,0BAA0B;AAAA,EAC5C;AAAA,EAEA,IAAI,gBAAqB;AACvB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,cAAc,MAAW;AAC3B,SAAK,YAAY;AAAA,EACnB;AAAA,EAEA,IAAI,aAAyC;AAC3C,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,cAAsB;AAClC,WAAO;AAAA,EACT;AAAA,EAEA,gBAA8B;AAC5B,UAAM,UAAU,IAAI,IAAI,uBAAuB,oBAAoB,IAAI,aAAe;AAItF,UAAM,eAAe,yBAAyB;AAC9C,UAAM,cAAc,eAAe,EAAE,UAAU,QAAQ,SAAS,IAAI;AAEpE,eAAO,gCAAK,SAAS,CAAC,KAAK,MAAM,GAAG,WAAW;AAAA,EACjD;AAAA,EAEA,MAAM,SAAS,MAAoB;AACjC,SAAK,GAAG,WAAW,CAAC,QAAoB;AACtC,cAAQ,IAAI,MAAM;AAAA,QAChB,KAAK;AACH,eAAK,gBAAgB,KAAK,KAAK,iBAAiB,MAAM,IAAI,KAAK,CAAC;AAAA,MACpE;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,iBACJ,MACA,KACA;AACA,QAAI,CAAC,KAAK,oBAAoB;AAC5B,WAAK,QAAQ,KAAK,sDAAsD;AACxE,WAAK,KAAK;AAAA,QACR,MAAM;AAAA,QACN,OAAO,EAAE,WAAW,IAAI,WAAW,OAAO,IAAI,MAAM,uBAAuB,EAAE;AAAA,MAC/E,CAAC;AACD;AAAA,IACF;AAEA,QAAI;AACF,YAAM,OAAO,MAAM,KAAK,mBAAmB,YAAY,IAAI,QAAQ,IAAI,IAAI;AAC3E,WAAK,KAAK,EAAE,MAAM,qBAAqB,OAAO,EAAE,WAAW,IAAI,WAAW,KAAK,EAAE,CAAC;AAAA,IACpF,SAAS,OAAO;AACd,WAAK,KAAK,EAAE,MAAM,qBAAqB,OAAO,EAAE,WAAW,IAAI,WAAW,MAAM,EAAE,CAAC;AAAA,IACrF;AAAA,EACF;AAAA,EAEA,MAAM,UAAU,MAAsB;AACpC,QAAI,KAAK,aAAa;AACpB,YAAM,MAAM,mCAAmC;AAAA,IACjD;AACA,QAAI,CAAC,KAAK,KAAK,MAAM;AACnB,YAAM,MAAM,yBAAyB;AAAA,IACvC;AACA,SAAK,aAAa,8BAAU;AAC5B,SAAK,cAAc;AAEnB,SAAK,KAAM,KAAK,EAAE,MAAM,mBAAmB,OAAO,EAAE,YAAY,KAAK,EAAE,CAAC;AAAA,EAC1E;AACF;","names":[]}