@faapi/faapi 6.4.0 → 6.5.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/cli/index.js +110 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +109 -4
- package/dist/index.js.map +1 -1
- package/dist/{routeTypes-_17rXzal.d.ts → routeTypes-q9OXB--o.d.ts} +267 -223
- package/dist/testing.d.ts +1 -1
- package/dist/testing.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -6957,6 +6957,40 @@ function createTaskHandleStore() {
|
|
|
6957
6957
|
}
|
|
6958
6958
|
};
|
|
6959
6959
|
}
|
|
6960
|
+
function createTaskRegistriesView(registries) {
|
|
6961
|
+
return {
|
|
6962
|
+
agent: {
|
|
6963
|
+
getAgent: (name) => registries.agent.getAgent(name),
|
|
6964
|
+
getAgentEntry: (name) => registries.agent.getAgentEntry(name),
|
|
6965
|
+
listAgents: () => registries.agent.listAgents(),
|
|
6966
|
+
asTool: (name) => registries.agent.asTool(name),
|
|
6967
|
+
resolveAgentTools: (name) => registries.agent.resolveAgentTools(name),
|
|
6968
|
+
resolveSubAgents: (name) => registries.agent.resolveSubAgents(name)
|
|
6969
|
+
},
|
|
6970
|
+
tool: {
|
|
6971
|
+
get: (name) => registries.tool.get(name),
|
|
6972
|
+
list: () => registries.tool.list()
|
|
6973
|
+
},
|
|
6974
|
+
skill: {
|
|
6975
|
+
get: (name) => registries.skill.get(name),
|
|
6976
|
+
list: () => registries.skill.list()
|
|
6977
|
+
}
|
|
6978
|
+
};
|
|
6979
|
+
}
|
|
6980
|
+
function createEmptyTaskRegistriesView() {
|
|
6981
|
+
return {
|
|
6982
|
+
agent: {
|
|
6983
|
+
getAgent: () => void 0,
|
|
6984
|
+
getAgentEntry: () => void 0,
|
|
6985
|
+
listAgents: () => [],
|
|
6986
|
+
asTool: () => void 0,
|
|
6987
|
+
resolveAgentTools: () => [],
|
|
6988
|
+
resolveSubAgents: () => []
|
|
6989
|
+
},
|
|
6990
|
+
tool: { get: () => void 0, list: () => [] },
|
|
6991
|
+
skill: { get: () => void 0, list: () => [] }
|
|
6992
|
+
};
|
|
6993
|
+
}
|
|
6960
6994
|
function createAppRegistries() {
|
|
6961
6995
|
const tool = createToolRegistry();
|
|
6962
6996
|
const agent = createAgentRegistry(tool);
|
|
@@ -8330,6 +8364,8 @@ function buildWrapperSource(moduleUrl) {
|
|
|
8330
8364
|
import { parentPort } from 'node:worker_threads';
|
|
8331
8365
|
import * as mod from '${moduleUrl}';
|
|
8332
8366
|
|
|
8367
|
+
${BUILD_VIEW_SOURCE}
|
|
8368
|
+
|
|
8333
8369
|
const run = mod.run;
|
|
8334
8370
|
if (typeof run !== 'function') {
|
|
8335
8371
|
parentPort.postMessage({ type: 'error', message: 'Task module has no run export' });
|
|
@@ -8344,7 +8380,8 @@ if (typeof run !== 'function') {
|
|
|
8344
8380
|
controller = new AbortController();
|
|
8345
8381
|
const { payload, taskCtx } = msg;
|
|
8346
8382
|
try {
|
|
8347
|
-
const
|
|
8383
|
+
const registries = buildRegistriesView(msg.registries);
|
|
8384
|
+
const result = await run(payload, { ...taskCtx, signal: controller.signal, registries });
|
|
8348
8385
|
parentPort.postMessage({ type: 'done', result });
|
|
8349
8386
|
} catch (err) {
|
|
8350
8387
|
parentPort.postMessage({
|
|
@@ -8442,7 +8479,8 @@ async function runTaskInWorker(options) {
|
|
|
8442
8479
|
worker.postMessage({
|
|
8443
8480
|
type: "run",
|
|
8444
8481
|
payload,
|
|
8445
|
-
taskCtx: { config: safeConfig(taskCtx.config), job: taskCtx.job }
|
|
8482
|
+
taskCtx: { config: safeConfig(taskCtx.config), job: taskCtx.job },
|
|
8483
|
+
registries: options.registries
|
|
8446
8484
|
});
|
|
8447
8485
|
} catch (err) {
|
|
8448
8486
|
finish(
|
|
@@ -8453,7 +8491,7 @@ async function runTaskInWorker(options) {
|
|
|
8453
8491
|
}
|
|
8454
8492
|
});
|
|
8455
8493
|
}
|
|
8456
|
-
var KILL_GRACE_MS, TaskCancelledError;
|
|
8494
|
+
var KILL_GRACE_MS, TaskCancelledError, BUILD_VIEW_SOURCE;
|
|
8457
8495
|
var init_taskWorker = __esm({
|
|
8458
8496
|
"src/task/taskWorker.ts"() {
|
|
8459
8497
|
"use strict";
|
|
@@ -8464,6 +8502,61 @@ var init_taskWorker = __esm({
|
|
|
8464
8502
|
this.name = "TaskCancelledError";
|
|
8465
8503
|
}
|
|
8466
8504
|
};
|
|
8505
|
+
BUILD_VIEW_SOURCE = `
|
|
8506
|
+
function buildRegistriesView(snapshot) {
|
|
8507
|
+
var agents = new Map(((snapshot && snapshot.agents) || []).map(function (a) { return [a.name, a]; }));
|
|
8508
|
+
var tools = new Map(((snapshot && snapshot.tools) || []).map(function (t) { return [t.name, t]; }));
|
|
8509
|
+
var skills = new Map(((snapshot && snapshot.skills) || []).map(function (s) { return [s.name, s]; }));
|
|
8510
|
+
return {
|
|
8511
|
+
agent: {
|
|
8512
|
+
getAgent: function (name) { return agents.get(name); },
|
|
8513
|
+
getAgentEntry: function (name) { return agents.get(name); },
|
|
8514
|
+
listAgents: function () { return Array.from(agents.values()); },
|
|
8515
|
+
asTool: function (name) {
|
|
8516
|
+
var agent = agents.get(name);
|
|
8517
|
+
if (!agent) return undefined;
|
|
8518
|
+
return {
|
|
8519
|
+
kind: 'agent',
|
|
8520
|
+
name: 'agent.' + agent.name,
|
|
8521
|
+
agentName: agent.name,
|
|
8522
|
+
description: agent.description,
|
|
8523
|
+
metadata: agent,
|
|
8524
|
+
};
|
|
8525
|
+
},
|
|
8526
|
+
resolveAgentTools: function (name) {
|
|
8527
|
+
var agent = agents.get(name);
|
|
8528
|
+
var result = new Map();
|
|
8529
|
+
if (agent && agent.tools) {
|
|
8530
|
+
agent.tools.forEach(function (toolName) {
|
|
8531
|
+
var resolved = tools.get(toolName);
|
|
8532
|
+
if (resolved) result.set(resolved.name, resolved);
|
|
8533
|
+
});
|
|
8534
|
+
}
|
|
8535
|
+
return Array.from(result.values());
|
|
8536
|
+
},
|
|
8537
|
+
resolveSubAgents: function (name) {
|
|
8538
|
+
var agent = agents.get(name);
|
|
8539
|
+
var result = [];
|
|
8540
|
+
if (agent && agent.agents) {
|
|
8541
|
+
agent.agents.forEach(function (subName) {
|
|
8542
|
+
var sub = agents.get(subName);
|
|
8543
|
+
if (sub) result.push(sub);
|
|
8544
|
+
});
|
|
8545
|
+
}
|
|
8546
|
+
return result;
|
|
8547
|
+
},
|
|
8548
|
+
},
|
|
8549
|
+
tool: {
|
|
8550
|
+
get: function (name) { return tools.get(name); },
|
|
8551
|
+
list: function () { return Array.from(tools.values()); },
|
|
8552
|
+
},
|
|
8553
|
+
skill: {
|
|
8554
|
+
get: function (name) { return skills.get(name); },
|
|
8555
|
+
list: function () { return Array.from(skills.values()); },
|
|
8556
|
+
},
|
|
8557
|
+
};
|
|
8558
|
+
}
|
|
8559
|
+
`;
|
|
8467
8560
|
}
|
|
8468
8561
|
});
|
|
8469
8562
|
|
|
@@ -8471,6 +8564,7 @@ var init_taskWorker = __esm({
|
|
|
8471
8564
|
import path25 from "path";
|
|
8472
8565
|
function createTaskQueue(deps) {
|
|
8473
8566
|
const { registry, rootDir, driver } = deps;
|
|
8567
|
+
const registriesView = deps.registries ?? createEmptyTaskRegistriesView();
|
|
8474
8568
|
const records = /* @__PURE__ */ new Map();
|
|
8475
8569
|
const moduleCache2 = /* @__PURE__ */ new Map();
|
|
8476
8570
|
const schemaCache = /* @__PURE__ */ new Map();
|
|
@@ -8494,6 +8588,13 @@ function createTaskQueue(deps) {
|
|
|
8494
8588
|
throw new Error(`[faapi] Unknown task "${name}". Registered tasks: ${known}`);
|
|
8495
8589
|
}
|
|
8496
8590
|
}
|
|
8591
|
+
function snapshotRegistries() {
|
|
8592
|
+
return {
|
|
8593
|
+
agents: registriesView.agent.listAgents().map((core) => registriesView.agent.getAgentEntry(core.name)).filter((entry) => entry !== void 0),
|
|
8594
|
+
tools: registriesView.tool.list(),
|
|
8595
|
+
skills: registriesView.skill.list()
|
|
8596
|
+
};
|
|
8597
|
+
}
|
|
8497
8598
|
async function validatePayload(name, payload) {
|
|
8498
8599
|
if (!schemaCache.has(name)) {
|
|
8499
8600
|
const meta = registry.get(name);
|
|
@@ -8540,6 +8641,7 @@ function createTaskQueue(deps) {
|
|
|
8540
8641
|
config: deps.config,
|
|
8541
8642
|
job: { id: job.id, name: job.name, attempt: job.attempt }
|
|
8542
8643
|
},
|
|
8644
|
+
registries: snapshotRegistries(),
|
|
8543
8645
|
timeoutMs: meta.timeoutMs,
|
|
8544
8646
|
externalSignal: job.signal
|
|
8545
8647
|
});
|
|
@@ -8555,7 +8657,8 @@ function createTaskQueue(deps) {
|
|
|
8555
8657
|
const taskCtx = {
|
|
8556
8658
|
signal: job.signal,
|
|
8557
8659
|
config: deps.config,
|
|
8558
|
-
job: { id: job.id, name: job.name, attempt: job.attempt }
|
|
8660
|
+
job: { id: job.id, name: job.name, attempt: job.attempt },
|
|
8661
|
+
registries: registriesView
|
|
8559
8662
|
};
|
|
8560
8663
|
result = await mod.run(job.payload, taskCtx);
|
|
8561
8664
|
}
|
|
@@ -8702,6 +8805,7 @@ var init_taskQueue = __esm({
|
|
|
8702
8805
|
"use strict";
|
|
8703
8806
|
init_httpErrors();
|
|
8704
8807
|
init_taskWorker();
|
|
8808
|
+
init_registries();
|
|
8705
8809
|
}
|
|
8706
8810
|
});
|
|
8707
8811
|
|
|
@@ -9069,6 +9173,7 @@ async function createAppBase(options) {
|
|
|
9069
9173
|
registry: registries.task,
|
|
9070
9174
|
rootDir,
|
|
9071
9175
|
config,
|
|
9176
|
+
registries: createTaskRegistriesView(registries),
|
|
9072
9177
|
driver: taskDriver,
|
|
9073
9178
|
onFailed: config?.task?.onFailed
|
|
9074
9179
|
});
|
|
@@ -9082,7 +9187,7 @@ async function createAppBase(options) {
|
|
|
9082
9187
|
await taskQueue.stop(config?.task?.shutdownTimeoutMs ?? 1e4);
|
|
9083
9188
|
};
|
|
9084
9189
|
if (taskEnabled) {
|
|
9085
|
-
taskQueue.start();
|
|
9190
|
+
await taskQueue.start();
|
|
9086
9191
|
cronScheduler.start();
|
|
9087
9192
|
}
|
|
9088
9193
|
registries.taskHandle.register(() => taskQueue);
|