@faapi/faapi 6.31.0 → 6.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1126,6 +1126,8 @@ var init_resolveInjection = __esm({
1126
1126
  // 任务子系统:TaskClient(入队/查询)
1127
1127
  log: "log",
1128
1128
  // 请求级日志器(ctx.log 同一实例:scope http,自动带 requestId 等字段)
1129
+ llm: "llm",
1130
+ // 轻量 LLM 补全通道(@faapi/agent 插件注册到 registries.llm;未加载时 undefined)
1129
1131
  // raw 系:恒原始输入(无 schema、无校验、管线永不转换),与 query/params/body
1130
1132
  // 的「校验转换后」口径二分互补
1131
1133
  rawQuery: "rawQuery",
@@ -1970,6 +1972,20 @@ function createAgentHandleStore() {
1970
1972
  }
1971
1973
  };
1972
1974
  }
1975
+ function createLlmChannelStore() {
1976
+ let current = null;
1977
+ return {
1978
+ register(channel) {
1979
+ current = channel;
1980
+ },
1981
+ get() {
1982
+ return current ?? void 0;
1983
+ },
1984
+ clear() {
1985
+ current = null;
1986
+ }
1987
+ };
1988
+ }
1973
1989
  function createTaskHandleStore() {
1974
1990
  let currentFactory = null;
1975
1991
  return {
@@ -2026,7 +2042,8 @@ function createAppRegistries() {
2026
2042
  const task = createTaskRegistry();
2027
2043
  const agentHandle = createAgentHandleStore();
2028
2044
  const taskHandle = createTaskHandleStore();
2029
- return { tool, agent, skill, task, agentHandle, taskHandle };
2045
+ const llm = createLlmChannelStore();
2046
+ return { tool, agent, skill, task, agentHandle, taskHandle, llm };
2030
2047
  }
2031
2048
  var defaultRegistries = createAppRegistries();
2032
2049
 
@@ -2240,6 +2257,7 @@ async function runTaskInWorker(options) {
2240
2257
  job: taskCtx.job
2241
2258
  },
2242
2259
  registries: options.registries,
2260
+ llms: options.llms,
2243
2261
  log: options.log
2244
2262
  });
2245
2263
  } catch (err) {
@@ -2592,6 +2610,9 @@ function createTaskQueue(deps) {
2592
2610
  job: { id: job.id, name: job.name, attempt: job.attempt }
2593
2611
  },
2594
2612
  registries: snapshotRegistries(),
2613
+ // agent.llms 纯数据快照随 workerData 下发,worker 内动态加载 @faapi/agent
2614
+ // 重建轻量补全通道(taskCtx.llm)——llms 未配置时不传
2615
+ llms: deps.llms,
2595
2616
  // 日志配置随 workerData 下发(纯数据),worker 内联重建 taskCtx.log,
2596
2617
  // 条目回传宿主走统一管道(scope/fields 与进程内路径一致)
2597
2618
  log: {
@@ -2621,6 +2642,8 @@ function createTaskQueue(deps) {
2621
2642
  config: deps.config,
2622
2643
  job: { id: job.id, name: job.name, attempt: job.attempt },
2623
2644
  registries: registriesView,
2645
+ // 轻量补全通道惰性读取(插件晚于队列构造注册,执行时刻取值才可见)
2646
+ llm: deps.llm?.get(),
2624
2647
  log: createLogger(`task:${job.name}`, {
2625
2648
  fields: { jobId: job.id, task: job.name, attempt: job.attempt }
2626
2649
  }),
@@ -5375,6 +5398,10 @@ function getBuiltinInjectionValue(type, ctx, body) {
5375
5398
  // 任务子系统:注入 TaskClient(入队/查询);未注册工厂(无 app 编排)时 undefined
5376
5399
  case "tasks":
5377
5400
  return ctx.registries ? ctx.registries.taskHandle.get(ctx) : void 0;
5401
+ // 轻量 LLM 补全通道:@faapi/agent 插件注册到 registries.llm;与请求上下文无关,
5402
+ // get 无参。插件未加载(或编程式直调 ctx 无 registries)时 undefined
5403
+ case "llm":
5404
+ return ctx.registries ? ctx.registries.llm.get() : void 0;
5378
5405
  // 请求级日志器:与 ctx.log 同一实例(scope http,自动带 requestId/method/path 字段)
5379
5406
  case "log":
5380
5407
  return ctx.log;
@@ -7655,6 +7682,10 @@ async function createAppBase(options) {
7655
7682
  config,
7656
7683
  resourcesDir,
7657
7684
  registries: createTaskRegistriesView(registries),
7685
+ // 轻量补全通道:进程内路径经 store 惰性读取(插件注册后的活引用);
7686
+ // 隔离路径传 agent.llms 纯数据快照(worker 内重建)
7687
+ llm: registries.llm,
7688
+ llms: config?.agent?.llms,
7658
7689
  driver: taskDriver,
7659
7690
  onFailed: config?.task?.onFailed
7660
7691
  });
@@ -7792,6 +7823,7 @@ async function createAppBase(options) {
7792
7823
  registries.task.clear();
7793
7824
  registries.agentHandle.clear();
7794
7825
  registries.taskHandle.clear();
7826
+ registries.llm.clear();
7795
7827
  setActiveResourcesDir(null);
7796
7828
  if (!server.listening) {
7797
7829
  app.server = null;