@ai-setting/roy-agent-core 1.6.7 → 1.6.9
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/config/index.js +7 -7
- package/dist/env/agent/index.js +9 -9
- package/dist/env/commands/index.js +7 -7
- package/dist/env/context/index.js +3 -3
- package/dist/env/debug/index.js +7 -7
- package/dist/env/event-source/index.js +10 -10
- package/dist/env/hook/index.js +5 -5
- package/dist/env/index.js +29 -28
- package/dist/env/llm/index.js +7 -7
- package/dist/env/log-trace/index.js +7 -7
- package/dist/env/mcp/index.js +7 -7
- package/dist/env/memory/index.js +7 -7
- package/dist/env/plugin/index.js +7 -7
- package/dist/env/prompt/index.js +8 -8
- package/dist/env/session/index.js +7 -7
- package/dist/env/skill/index.js +7 -7
- package/dist/env/task/delegate/index.js +8 -7
- package/dist/env/task/index.js +12 -11
- package/dist/env/task/plugins/index.js +5 -5
- package/dist/env/task/tools/index.js +3 -3
- package/dist/env/tool/built-in/index.js +2 -2
- package/dist/env/tool/index.js +8 -8
- package/dist/env/workflow/engine/index.js +8 -8
- package/dist/env/workflow/index.js +16 -15
- package/dist/env/workflow/nodes/index.js +2 -2
- package/dist/env/workflow/service/index.js +2 -2
- package/dist/env/workflow/storage/index.js +3 -3
- package/dist/env/workflow/tools/index.js +10 -9
- package/dist/env/workflow/utils/index.js +2 -2
- package/dist/index.js +39 -38
- package/dist/shared/@ai-setting/{roy-agent-core-39rvx3fw.js → roy-agent-core-062gyaz8.js} +10 -6
- package/dist/shared/@ai-setting/{roy-agent-core-12ttd2w1.js → roy-agent-core-0cftbg62.js} +5 -5
- package/dist/shared/@ai-setting/{roy-agent-core-jexyz11d.js → roy-agent-core-1mq9erp8.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-wmkx79b1.js → roy-agent-core-1qcpvtp8.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-b77yz0wt.js → roy-agent-core-606z25nw.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-971gwby7.js → roy-agent-core-7rsfynhz.js} +4 -4
- package/dist/shared/@ai-setting/{roy-agent-core-2r1rc0fe.js → roy-agent-core-80bdhnwk.js} +4 -4
- package/dist/shared/@ai-setting/{roy-agent-core-c94yan0b.js → roy-agent-core-8bhncxep.js} +101 -17
- package/dist/shared/@ai-setting/{roy-agent-core-zttjq1h3.js → roy-agent-core-9hqqhye6.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-gdkq55yg.js → roy-agent-core-9zf4jmgh.js} +6 -6
- package/dist/shared/@ai-setting/{roy-agent-core-b2thb9xj.js → roy-agent-core-atjd1tpt.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-33rhv946.js → roy-agent-core-brfryc0b.js} +1 -1
- package/dist/shared/@ai-setting/roy-agent-core-c1v263jn.js +11 -0
- package/dist/shared/@ai-setting/{roy-agent-core-gp872e7m.js → roy-agent-core-dbkkjmqz.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-kenhsgnf.js → roy-agent-core-e34xdjwa.js} +23 -14
- package/dist/shared/@ai-setting/{roy-agent-core-scp0afxg.js → roy-agent-core-endah27g.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-ddghwfmk.js → roy-agent-core-f79ee0aw.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-cg146hmg.js → roy-agent-core-fdm579b1.js} +28 -2
- package/dist/shared/@ai-setting/{roy-agent-core-w7mhnc4c.js → roy-agent-core-g2ntbc33.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-xgnpr28w.js → roy-agent-core-htjag2nr.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-pf1c360e.js → roy-agent-core-j62bjagf.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-d2bmfnb5.js → roy-agent-core-jmzz2yxs.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-sssn8kt9.js → roy-agent-core-jw0hbacv.js} +3 -3
- package/dist/shared/@ai-setting/{roy-agent-core-bqwj1dq0.js → roy-agent-core-kxtkz66a.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-578qk38y.js → roy-agent-core-np2vh6ya.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-b75jtybq.js → roy-agent-core-p2vpsd1d.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-gw43m8yd.js → roy-agent-core-p6x6n3k4.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-cx67bv9d.js → roy-agent-core-q1ksqes1.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-cx9p8b2t.js → roy-agent-core-qbm5zy6s.js} +3 -3
- package/dist/shared/@ai-setting/{roy-agent-core-jzza6c2r.js → roy-agent-core-qdgaghhw.js} +6 -6
- package/dist/shared/@ai-setting/{roy-agent-core-hf8pqrvy.js → roy-agent-core-qfdj8872.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-ka4b12eg.js → roy-agent-core-qyarxwzg.js} +25 -5
- package/dist/shared/@ai-setting/{roy-agent-core-ksx9a556.js → roy-agent-core-r74v00c7.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-0tfv18rf.js → roy-agent-core-resnbd2j.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-sxqy40cs.js → roy-agent-core-rpq0mcvv.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-r08qk37k.js → roy-agent-core-sd3v4kaq.js} +3 -3
- package/dist/shared/@ai-setting/{roy-agent-core-02n40zbs.js → roy-agent-core-sk4xg1dw.js} +39 -25
- package/dist/shared/@ai-setting/{roy-agent-core-634ee5jb.js → roy-agent-core-tbn8cerp.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-4extx33r.js → roy-agent-core-trdpar9f.js} +49 -183
- package/dist/shared/@ai-setting/{roy-agent-core-8jmkghjc.js → roy-agent-core-w1e55apa.js} +5 -5
- package/dist/shared/@ai-setting/{roy-agent-core-q88vxmx5.js → roy-agent-core-w22tzjj5.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-as3phr7n.js → roy-agent-core-wqe84f84.js} +15 -6
- package/dist/shared/@ai-setting/{roy-agent-core-jayzyg7h.js → roy-agent-core-y5ymc4f8.js} +6 -6
- package/dist/shared/@ai-setting/{roy-agent-core-34xt19yg.js → roy-agent-core-yk0n6j67.js} +11 -11
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
builtInPrompts
|
|
3
|
-
} from "./roy-agent-core-
|
|
3
|
+
} from "./roy-agent-core-trdpar9f.js";
|
|
4
4
|
import {
|
|
5
5
|
getXDGPath
|
|
6
6
|
} from "./roy-agent-core-qxnbvgwe.js";
|
|
@@ -10,14 +10,14 @@ import {
|
|
|
10
10
|
} from "./roy-agent-core-qxhq8ven.js";
|
|
11
11
|
import {
|
|
12
12
|
BaseComponent
|
|
13
|
-
} from "./roy-agent-core-
|
|
13
|
+
} from "./roy-agent-core-j62bjagf.js";
|
|
14
14
|
import {
|
|
15
15
|
createHook
|
|
16
|
-
} from "./roy-agent-core-
|
|
16
|
+
} from "./roy-agent-core-r74v00c7.js";
|
|
17
17
|
import {
|
|
18
18
|
globalHookManager,
|
|
19
19
|
init_global_hook_manager
|
|
20
|
-
} from "./roy-agent-core-
|
|
20
|
+
} from "./roy-agent-core-dbkkjmqz.js";
|
|
21
21
|
import {
|
|
22
22
|
createLogger,
|
|
23
23
|
init_logger
|
|
@@ -3,17 +3,17 @@ import {
|
|
|
3
3
|
} from "./roy-agent-core-az13yzmc.js";
|
|
4
4
|
import {
|
|
5
5
|
BaseComponent
|
|
6
|
-
} from "./roy-agent-core-
|
|
6
|
+
} from "./roy-agent-core-j62bjagf.js";
|
|
7
7
|
import {
|
|
8
8
|
globalHookManager,
|
|
9
9
|
init_global_hook_manager
|
|
10
|
-
} from "./roy-agent-core-
|
|
10
|
+
} from "./roy-agent-core-dbkkjmqz.js";
|
|
11
11
|
import {
|
|
12
12
|
init_context
|
|
13
|
-
} from "./roy-agent-core-
|
|
13
|
+
} from "./roy-agent-core-9hqqhye6.js";
|
|
14
14
|
import {
|
|
15
15
|
getEnvContextOrEmpty
|
|
16
|
-
} from "./roy-agent-core-
|
|
16
|
+
} from "./roy-agent-core-endah27g.js";
|
|
17
17
|
import {
|
|
18
18
|
createLogger,
|
|
19
19
|
init_logger
|
|
@@ -4,27 +4,31 @@ import {
|
|
|
4
4
|
} from "./roy-agent-core-pzeexnhf.js";
|
|
5
5
|
import {
|
|
6
6
|
builtInPrompts
|
|
7
|
-
} from "./roy-agent-core-
|
|
7
|
+
} from "./roy-agent-core-trdpar9f.js";
|
|
8
|
+
import {
|
|
9
|
+
runWithBgTaskIdAsync
|
|
10
|
+
} from "./roy-agent-core-c1v263jn.js";
|
|
8
11
|
import {
|
|
9
12
|
DEFAULT_SUBAGENT_PROMPT
|
|
10
|
-
} from "./roy-agent-core-
|
|
13
|
+
} from "./roy-agent-core-wqe84f84.js";
|
|
11
14
|
import {
|
|
12
15
|
TaskHookPoints
|
|
13
16
|
} from "./roy-agent-core-1pg0fepg.js";
|
|
14
17
|
import {
|
|
15
18
|
globalHookManager,
|
|
16
19
|
init_global_hook_manager
|
|
17
|
-
} from "./roy-agent-core-
|
|
20
|
+
} from "./roy-agent-core-dbkkjmqz.js";
|
|
18
21
|
import {
|
|
19
22
|
init_context
|
|
20
|
-
} from "./roy-agent-core-
|
|
23
|
+
} from "./roy-agent-core-9hqqhye6.js";
|
|
21
24
|
import {
|
|
22
25
|
getCurrentTaskId
|
|
23
|
-
} from "./roy-agent-core-
|
|
26
|
+
} from "./roy-agent-core-endah27g.js";
|
|
24
27
|
import {
|
|
25
28
|
TracedAs,
|
|
26
|
-
init_decorator
|
|
27
|
-
|
|
29
|
+
init_decorator,
|
|
30
|
+
wrapFunction
|
|
31
|
+
} from "./roy-agent-core-fdm579b1.js";
|
|
28
32
|
import {
|
|
29
33
|
createLogger,
|
|
30
34
|
init_logger
|
|
@@ -232,11 +236,13 @@ function buildEntryAgentPrompt(options) {
|
|
|
232
236
|
return `# Workflow 调度请求
|
|
233
237
|
|
|
234
238
|
你被调用是因为上游 \`delegate_task\` 检测到 workflow 类型 subagent **${workflowName}**。
|
|
235
|
-
请通过 \`
|
|
239
|
+
请通过 \`workflow_run\` 命令调度对应 workflow。
|
|
240
|
+
|
|
241
|
+
<workflow_name>${workflowName}</workflow_name>
|
|
236
242
|
|
|
237
243
|
## 调度目标
|
|
238
244
|
|
|
239
|
-
- **Workflow 名称**: \`${workflowName}\`
|
|
245
|
+
- **Workflow 名称**: \`${workflowName}\` (权威来源: \`<workflow_name>\` 标签, 不要从上下文猜测)
|
|
240
246
|
- **任务描述**: ${description}
|
|
241
247
|
|
|
242
248
|
## 原始用户请求
|
|
@@ -245,14 +251,21 @@ ${originalPrompt}
|
|
|
245
251
|
|
|
246
252
|
## 你的行动
|
|
247
253
|
|
|
248
|
-
1. \`
|
|
254
|
+
1. \`workflow_get(${workflowName})\` 取 workflow 入参 schema
|
|
249
255
|
2. 从"原始用户请求"提取符合 schema 的 input 字段
|
|
250
|
-
3. \`
|
|
251
|
-
4.
|
|
256
|
+
3. \`workflow_run(${workflowName}, input)\` 触发 workflow
|
|
257
|
+
4. 把 output 原样回给 parent agent
|
|
252
258
|
|
|
253
|
-
不要做其他工作。只走 \`
|
|
259
|
+
不要做其他工作。只走 \`workflow_run\` 路径。
|
|
254
260
|
`;
|
|
255
261
|
}
|
|
262
|
+
var WORKFLOW_COMPAT_ALIASES = new Set([
|
|
263
|
+
"strict-task-agent",
|
|
264
|
+
"code-review",
|
|
265
|
+
"bench-agent-host",
|
|
266
|
+
"workspace-analyzer",
|
|
267
|
+
"test-workflow-agent"
|
|
268
|
+
]);
|
|
256
269
|
var DEFAULT_TIMEOUT = 1800000;
|
|
257
270
|
var PROGRESS_INTERVAL = 1200000;
|
|
258
271
|
|
|
@@ -262,12 +275,53 @@ class BackgroundTaskManager {
|
|
|
262
275
|
abortControllers = new Map;
|
|
263
276
|
progressTimers = new Map;
|
|
264
277
|
processRegistries = new Map;
|
|
278
|
+
workflowRunRegistries = new Map;
|
|
279
|
+
workflowService;
|
|
265
280
|
constructor(env) {
|
|
266
281
|
this.env = env;
|
|
267
282
|
}
|
|
268
|
-
|
|
283
|
+
setWorkflowService(svc) {
|
|
284
|
+
this.workflowService = svc;
|
|
285
|
+
}
|
|
286
|
+
attachWorkflowRun(bgTaskId, workflowRunId) {
|
|
287
|
+
if (!bgTaskId || !workflowRunId)
|
|
288
|
+
return;
|
|
289
|
+
let set = this.workflowRunRegistries.get(bgTaskId);
|
|
290
|
+
if (!set) {
|
|
291
|
+
set = new Set;
|
|
292
|
+
this.workflowRunRegistries.set(bgTaskId, set);
|
|
293
|
+
}
|
|
294
|
+
set.add(workflowRunId);
|
|
295
|
+
}
|
|
296
|
+
detachWorkflowRun(bgTaskId, workflowRunId) {
|
|
297
|
+
this.workflowRunRegistries.get(bgTaskId)?.delete(workflowRunId);
|
|
298
|
+
}
|
|
299
|
+
async propagateStopToWorkflowRuns(bgTaskId, reason) {
|
|
300
|
+
const set = this.workflowRunRegistries.get(bgTaskId);
|
|
301
|
+
if (!set || set.size === 0)
|
|
302
|
+
return;
|
|
303
|
+
const runIds = Array.from(set);
|
|
304
|
+
logger.info(`[BackgroundTaskManager] propagateStopToWorkflowRuns count=${runIds.length} bgTaskId=${bgTaskId}`);
|
|
305
|
+
for (const runId of runIds) {
|
|
306
|
+
if (typeof this.workflowService?.stopRun !== "function") {
|
|
307
|
+
logger.warn(`[BackgroundTaskManager] workflowService not injected; cannot stop ${runId}`);
|
|
308
|
+
continue;
|
|
309
|
+
}
|
|
310
|
+
try {
|
|
311
|
+
await this.workflowService.stopRun(runId, reason);
|
|
312
|
+
} catch (err) {
|
|
313
|
+
logger.warn(`[BackgroundTaskManager] workflowService.stopRun(${runId}) failed (likely already terminal): ${err instanceof Error ? err.message : String(err)}`);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
set.clear();
|
|
317
|
+
}
|
|
318
|
+
static DEFAULT_WORKFLOW_ENTRY_AGENT = "workflow-runner";
|
|
269
319
|
resolveEntryAgent(subagentType) {
|
|
270
320
|
try {
|
|
321
|
+
if (BackgroundTaskManager.detectWorkflowShortcutCompat(subagentType)) {
|
|
322
|
+
logger.info(`[BackgroundTaskManager] Compat rewrite: '${subagentType}' → '${BackgroundTaskManager.DEFAULT_WORKFLOW_ENTRY_AGENT}'`);
|
|
323
|
+
return BackgroundTaskManager.DEFAULT_WORKFLOW_ENTRY_AGENT;
|
|
324
|
+
}
|
|
271
325
|
const agentComponent = this.env?.getComponent?.("agent");
|
|
272
326
|
const registry = agentComponent?.getRegistry?.();
|
|
273
327
|
const agent = registry?.get?.(subagentType);
|
|
@@ -280,6 +334,10 @@ class BackgroundTaskManager {
|
|
|
280
334
|
return;
|
|
281
335
|
}
|
|
282
336
|
}
|
|
337
|
+
static _detectWorkflowShortcutWrapped = wrapFunction((subagentType) => WORKFLOW_COMPAT_ALIASES.has(subagentType), "delegate.detectWorkflowShortcut", { recordParams: true, recordResult: true, log: true });
|
|
338
|
+
static detectWorkflowShortcutCompat(subagentType) {
|
|
339
|
+
return BackgroundTaskManager._detectWorkflowShortcutWrapped(subagentType);
|
|
340
|
+
}
|
|
283
341
|
getSessionComponent() {
|
|
284
342
|
return this.env?.getComponent?.("session");
|
|
285
343
|
}
|
|
@@ -400,7 +458,7 @@ class BackgroundTaskManager {
|
|
|
400
458
|
throw new Error(`Sub session not found: ${task.subSessionId}`);
|
|
401
459
|
}
|
|
402
460
|
const taskRegistry = this.processRegistries.get(taskId);
|
|
403
|
-
const result = await this.executeWithAbort(subSession, prompt, timeoutMs, abortController?.signal, task.similarTaskIds, taskRegistry);
|
|
461
|
+
const result = await this.executeWithAbort(subSession, prompt, timeoutMs, taskId, abortController?.signal, task.similarTaskIds, taskRegistry);
|
|
404
462
|
if (abortController?.signal.aborted) {
|
|
405
463
|
logger.info(`[BackgroundTaskManager] Task was aborted`, { taskId });
|
|
406
464
|
return;
|
|
@@ -521,7 +579,7 @@ class BackgroundTaskManager {
|
|
|
521
579
|
this.progressTimers.delete(taskId);
|
|
522
580
|
}
|
|
523
581
|
}
|
|
524
|
-
async executeWithAbort(subSession, prompt, timeoutMs, signal, similarTaskIds, processRegistry) {
|
|
582
|
+
async executeWithAbort(subSession, prompt, timeoutMs, bgTaskId, signal, similarTaskIds, processRegistry) {
|
|
525
583
|
const metadata = subSession.info?.metadata || {};
|
|
526
584
|
const taskId = metadata.task_id;
|
|
527
585
|
const taskDescription = metadata.task_description || "";
|
|
@@ -665,7 +723,7 @@ Use these as guidance to improve task execution efficiency.`;
|
|
|
665
723
|
agentType: subagentType,
|
|
666
724
|
abort: signal
|
|
667
725
|
});
|
|
668
|
-
const wrappedPromise = processRegistry ? runWithProcessRegistryAsync(processRegistry, () => invokeHandleQuery()) :
|
|
726
|
+
const wrappedPromise = processRegistry ? runWithProcessRegistryAsync(processRegistry, () => runWithBgTaskIdAsync(bgTaskId, () => invokeHandleQuery())) : runWithBgTaskIdAsync(bgTaskId, () => invokeHandleQuery());
|
|
669
727
|
wrappedPromise?.then((result) => {
|
|
670
728
|
clearTimeout(timer);
|
|
671
729
|
resolve(result);
|
|
@@ -700,6 +758,7 @@ Use these as guidance to improve task execution efficiency.`;
|
|
|
700
758
|
error: err instanceof Error ? err.message : String(err)
|
|
701
759
|
});
|
|
702
760
|
}
|
|
761
|
+
await this.propagateStopToWorkflowRuns(taskId, "Task stopped by user");
|
|
703
762
|
const stoppedPayload = {
|
|
704
763
|
backgroundTaskId: task.id,
|
|
705
764
|
subSessionId: task.subSessionId,
|
|
@@ -735,10 +794,35 @@ Use these as guidance to improve task execution efficiency.`;
|
|
|
735
794
|
}
|
|
736
795
|
}
|
|
737
796
|
this.processRegistries.clear();
|
|
797
|
+
for (const taskId of this.workflowRunRegistries.keys()) {
|
|
798
|
+
await this.propagateStopToWorkflowRuns(taskId, "BackgroundTaskManager disposed");
|
|
799
|
+
}
|
|
800
|
+
this.workflowRunRegistries.clear();
|
|
738
801
|
this.tasks.clear();
|
|
739
802
|
logger.info(`[BackgroundTaskManager] Disposed`);
|
|
740
803
|
}
|
|
741
804
|
}
|
|
805
|
+
__legacyDecorateClassTS([
|
|
806
|
+
TracedAs("task.background.attachWorkflowRun", {
|
|
807
|
+
recordParams: true,
|
|
808
|
+
recordResult: false,
|
|
809
|
+
log: true
|
|
810
|
+
})
|
|
811
|
+
], BackgroundTaskManager.prototype, "attachWorkflowRun", null);
|
|
812
|
+
__legacyDecorateClassTS([
|
|
813
|
+
TracedAs("task.background.detachWorkflowRun", {
|
|
814
|
+
recordParams: true,
|
|
815
|
+
recordResult: false,
|
|
816
|
+
log: true
|
|
817
|
+
})
|
|
818
|
+
], BackgroundTaskManager.prototype, "detachWorkflowRun", null);
|
|
819
|
+
__legacyDecorateClassTS([
|
|
820
|
+
TracedAs("task.background.propagateStopToWorkflowRuns", {
|
|
821
|
+
recordParams: true,
|
|
822
|
+
recordResult: false,
|
|
823
|
+
log: true
|
|
824
|
+
})
|
|
825
|
+
], BackgroundTaskManager.prototype, "propagateStopToWorkflowRuns", null);
|
|
742
826
|
__legacyDecorateClassTS([
|
|
743
827
|
TracedAs("task.background.resolveEntryAgent", { recordParams: true, recordResult: true })
|
|
744
828
|
], BackgroundTaskManager.prototype, "resolveEntryAgent", null);
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
BackgroundTaskManager,
|
|
9
9
|
createDelegateTool,
|
|
10
10
|
createStopTool
|
|
11
|
-
} from "./roy-agent-core-
|
|
11
|
+
} from "./roy-agent-core-8bhncxep.js";
|
|
12
12
|
import {
|
|
13
13
|
SQLiteTaskStore,
|
|
14
14
|
getDefaultTaskDbPath
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
searchTasksTool,
|
|
25
25
|
treeTasksTool,
|
|
26
26
|
updateTaskTool
|
|
27
|
-
} from "./roy-agent-core-
|
|
27
|
+
} from "./roy-agent-core-rpq0mcvv.js";
|
|
28
28
|
import {
|
|
29
29
|
createOperationTool,
|
|
30
30
|
deleteOperationTool,
|
|
@@ -40,19 +40,19 @@ import {
|
|
|
40
40
|
} from "./roy-agent-core-qxhq8ven.js";
|
|
41
41
|
import {
|
|
42
42
|
BaseComponent
|
|
43
|
-
} from "./roy-agent-core-
|
|
43
|
+
} from "./roy-agent-core-j62bjagf.js";
|
|
44
44
|
import {
|
|
45
45
|
globalHookManager,
|
|
46
46
|
init_global_hook_manager
|
|
47
|
-
} from "./roy-agent-core-
|
|
47
|
+
} from "./roy-agent-core-dbkkjmqz.js";
|
|
48
48
|
import {
|
|
49
49
|
getEnvContextOrEmpty,
|
|
50
50
|
init_env_context
|
|
51
|
-
} from "./roy-agent-core-
|
|
51
|
+
} from "./roy-agent-core-endah27g.js";
|
|
52
52
|
import {
|
|
53
53
|
TracedAs,
|
|
54
54
|
init_decorator
|
|
55
|
-
} from "./roy-agent-core-
|
|
55
|
+
} from "./roy-agent-core-fdm579b1.js";
|
|
56
56
|
import {
|
|
57
57
|
createLogger,
|
|
58
58
|
init_logger
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// src/env/task/delegate/bg-task-id-storage.ts
|
|
2
|
+
import { AsyncLocalStorage } from "async_hooks";
|
|
3
|
+
var bgTaskIdStorage = new AsyncLocalStorage;
|
|
4
|
+
function runWithBgTaskIdAsync(bgTaskId, fn) {
|
|
5
|
+
return bgTaskIdStorage.run(bgTaskId, fn);
|
|
6
|
+
}
|
|
7
|
+
function getCurrentBgTaskId() {
|
|
8
|
+
return bgTaskIdStorage.getStore();
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export { runWithBgTaskIdAsync, getCurrentBgTaskId };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
init_context
|
|
3
|
-
} from "./roy-agent-core-
|
|
3
|
+
} from "./roy-agent-core-9hqqhye6.js";
|
|
4
4
|
import {
|
|
5
5
|
getEnvContext
|
|
6
|
-
} from "./roy-agent-core-
|
|
6
|
+
} from "./roy-agent-core-endah27g.js";
|
|
7
7
|
import {
|
|
8
8
|
__esm
|
|
9
9
|
} from "./roy-agent-core-fs0mn2jk.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
exports_node_registry_helper,
|
|
3
3
|
init_node_registry_helper
|
|
4
|
-
} from "./roy-agent-core-
|
|
4
|
+
} from "./roy-agent-core-htjag2nr.js";
|
|
5
5
|
import {
|
|
6
6
|
WorkflowEngine,
|
|
7
7
|
exports_engine,
|
|
8
8
|
init_engine
|
|
9
|
-
} from "./roy-agent-core-
|
|
9
|
+
} from "./roy-agent-core-062gyaz8.js";
|
|
10
10
|
import {
|
|
11
11
|
askUserTool,
|
|
12
12
|
createRunWorkflowTool,
|
|
@@ -18,13 +18,13 @@ import {
|
|
|
18
18
|
createWorkflowSearchTool,
|
|
19
19
|
createWorkflowTagListTool,
|
|
20
20
|
createWorkflowValidateTool
|
|
21
|
-
} from "./roy-agent-core-
|
|
21
|
+
} from "./roy-agent-core-qyarxwzg.js";
|
|
22
22
|
import {
|
|
23
23
|
WorkflowService
|
|
24
|
-
} from "./roy-agent-core-
|
|
24
|
+
} from "./roy-agent-core-p2vpsd1d.js";
|
|
25
25
|
import {
|
|
26
26
|
BaseComponent
|
|
27
|
-
} from "./roy-agent-core-
|
|
27
|
+
} from "./roy-agent-core-j62bjagf.js";
|
|
28
28
|
import {
|
|
29
29
|
createLogger,
|
|
30
30
|
init_logger
|
|
@@ -104,7 +104,7 @@ class WorkflowComponent extends BaseComponent {
|
|
|
104
104
|
return;
|
|
105
105
|
try {
|
|
106
106
|
const { NodeRegistry } = await import("../../env/workflow/engine/index.js");
|
|
107
|
-
const { registerDecoratorNodeType: registerDecoratorNodeType2 } = await import("./roy-agent-core-
|
|
107
|
+
const { registerDecoratorNodeType: registerDecoratorNodeType2 } = await import("./roy-agent-core-f79ee0aw.js");
|
|
108
108
|
this.nodeRegistry = new NodeRegistry;
|
|
109
109
|
registerDecoratorNodeType2(this.nodeRegistry);
|
|
110
110
|
this.decoratorsRegistered = true;
|
|
@@ -134,14 +134,14 @@ class WorkflowComponent extends BaseComponent {
|
|
|
134
134
|
}
|
|
135
135
|
async runWorkflow(definition, input, options) {
|
|
136
136
|
const { NodeRegistry } = await import("../../env/workflow/engine/index.js");
|
|
137
|
-
const { registerDecoratorNodeType: registerDecoratorNodeType2 } = await import("./roy-agent-core-
|
|
137
|
+
const { registerDecoratorNodeType: registerDecoratorNodeType2 } = await import("./roy-agent-core-f79ee0aw.js");
|
|
138
138
|
const toolComponent = this.toolComponent || this._workflowEnv?.getComponent("tool");
|
|
139
139
|
const skillComponent = this._workflowEnv?.getComponent("skill");
|
|
140
140
|
let agentRunner = this.agentRunner;
|
|
141
141
|
if (!agentRunner && this._workflowEnv) {
|
|
142
142
|
const agentComponent = this._workflowEnv.getComponent("agent");
|
|
143
143
|
if (agentComponent) {
|
|
144
|
-
const { AgentComponentAdapter } = await import("./roy-agent-core-
|
|
144
|
+
const { AgentComponentAdapter } = await import("./roy-agent-core-w1e55apa.js");
|
|
145
145
|
agentRunner = new AgentComponentAdapter(agentComponent, {}, this.sessionComponent);
|
|
146
146
|
}
|
|
147
147
|
}
|
|
@@ -163,7 +163,7 @@ class WorkflowComponent extends BaseComponent {
|
|
|
163
163
|
if (this.workflowService) {
|
|
164
164
|
this.workflowService = null;
|
|
165
165
|
try {
|
|
166
|
-
const { closeDatabase } = await import("./roy-agent-core-
|
|
166
|
+
const { closeDatabase } = await import("./roy-agent-core-qbm5zy6s.js");
|
|
167
167
|
closeDatabase();
|
|
168
168
|
componentLogger.info("[WorkflowComponent] SQLite database closed");
|
|
169
169
|
} catch (error) {
|
|
@@ -210,6 +210,15 @@ class WorkflowComponent extends BaseComponent {
|
|
|
210
210
|
componentLogger.warn("ToolComponent not available, cannot register workflow tools");
|
|
211
211
|
return;
|
|
212
212
|
}
|
|
213
|
+
const taskComponent = this._workflowEnv?.getComponent("task");
|
|
214
|
+
const backgroundTaskManager = taskComponent?.backgroundTaskManager;
|
|
215
|
+
if (backgroundTaskManager && typeof backgroundTaskManager.setWorkflowService === "function") {
|
|
216
|
+
backgroundTaskManager.setWorkflowService(this.workflowService);
|
|
217
|
+
}
|
|
218
|
+
const lifecycleHooks = backgroundTaskManager ? {
|
|
219
|
+
attachWorkflowRun: (bgTaskId, runId) => backgroundTaskManager.attachWorkflowRun(bgTaskId, runId),
|
|
220
|
+
detachWorkflowRun: (bgTaskId, runId) => backgroundTaskManager.detachWorkflowRun(bgTaskId, runId)
|
|
221
|
+
} : undefined;
|
|
213
222
|
const tools = [
|
|
214
223
|
createWorkflowGetTool(this.workflowService),
|
|
215
224
|
createWorkflowListTool(this.workflowService),
|
|
@@ -217,7 +226,7 @@ class WorkflowComponent extends BaseComponent {
|
|
|
217
226
|
createWorkflowValidateTool(this.workflowService),
|
|
218
227
|
createWorkflowSearchTool(this.workflowService),
|
|
219
228
|
createWorkflowTagListTool(this.workflowService),
|
|
220
|
-
createRunWorkflowTool(this.workflowService),
|
|
229
|
+
createRunWorkflowTool(this.workflowService, lifecycleHooks),
|
|
221
230
|
createWorkflowRunStatusTool(this.workflowService),
|
|
222
231
|
createWorkflowRunStopTool(this.workflowService)
|
|
223
232
|
];
|
|
@@ -231,9 +240,9 @@ class WorkflowComponent extends BaseComponent {
|
|
|
231
240
|
}
|
|
232
241
|
async initSqliteService() {
|
|
233
242
|
try {
|
|
234
|
-
const { getDatabase, initializeTables } = await import("./roy-agent-core-
|
|
235
|
-
const { WorkflowRepository } = await import("./roy-agent-core-
|
|
236
|
-
const { TagRepository } = await import("./roy-agent-core-
|
|
243
|
+
const { getDatabase, initializeTables } = await import("./roy-agent-core-qbm5zy6s.js");
|
|
244
|
+
const { WorkflowRepository } = await import("./roy-agent-core-jw0hbacv.js");
|
|
245
|
+
const { TagRepository } = await import("./roy-agent-core-qfdj8872.js");
|
|
237
246
|
const db = getDatabase();
|
|
238
247
|
initializeTables();
|
|
239
248
|
const workflowRepository = new WorkflowRepository(db);
|
|
@@ -299,7 +308,7 @@ class WorkflowComponent extends BaseComponent {
|
|
|
299
308
|
this.workflowService = null;
|
|
300
309
|
this.nodeRegistry = null;
|
|
301
310
|
try {
|
|
302
|
-
const { closeDatabase } = await import("./roy-agent-core-
|
|
311
|
+
const { closeDatabase } = await import("./roy-agent-core-qbm5zy6s.js");
|
|
303
312
|
closeDatabase();
|
|
304
313
|
} catch {}
|
|
305
314
|
this._status = "stopped";
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
hasDecoratorNodes,
|
|
4
4
|
init_node_registry_helper,
|
|
5
5
|
registerDecoratorNodeType
|
|
6
|
-
} from "./roy-agent-core-
|
|
6
|
+
} from "./roy-agent-core-htjag2nr.js";
|
|
7
7
|
import"./roy-agent-core-ddwa0n6h.js";
|
|
8
8
|
import"./roy-agent-core-1ce3fqrk.js";
|
|
9
|
-
import"./roy-agent-core-
|
|
9
|
+
import"./roy-agent-core-fdm579b1.js";
|
|
10
10
|
import"./roy-agent-core-vyygk314.js";
|
|
11
11
|
import"./roy-agent-core-7z9b1fm8.js";
|
|
12
12
|
import"./roy-agent-core-c6592r3c.js";
|
|
@@ -23,7 +23,9 @@ function Traced(options) {
|
|
|
23
23
|
recordError: options?.recordError ?? true,
|
|
24
24
|
log: options?.log ?? false,
|
|
25
25
|
maxLogSize: options?.maxLogSize,
|
|
26
|
-
paramFilter: options?.paramFilter
|
|
26
|
+
paramFilter: options?.paramFilter,
|
|
27
|
+
resultFilter: options?.resultFilter,
|
|
28
|
+
flattenParamFilter: options?.flattenParamFilter
|
|
27
29
|
});
|
|
28
30
|
return descriptor;
|
|
29
31
|
};
|
|
@@ -129,7 +131,15 @@ function wrapFunction(fn, name, options) {
|
|
|
129
131
|
const attributes = {};
|
|
130
132
|
if (options?.recordParams !== false) {
|
|
131
133
|
if (options?.paramFilter) {
|
|
132
|
-
|
|
134
|
+
const filtered = options.paramFilter(args);
|
|
135
|
+
attributes["params"] = truncate(filtered);
|
|
136
|
+
if (options?.flattenParamFilter && filtered && typeof filtered === "object" && !Array.isArray(filtered)) {
|
|
137
|
+
for (const [key, value] of Object.entries(filtered)) {
|
|
138
|
+
if (!(key in attributes)) {
|
|
139
|
+
attributes[key] = truncate(value);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
133
143
|
} else {
|
|
134
144
|
attributes["params"] = truncate(args);
|
|
135
145
|
}
|
|
@@ -145,6 +155,14 @@ function wrapFunction(fn, name, options) {
|
|
|
145
155
|
if (result && typeof result === "object" && typeof result.then === "function") {
|
|
146
156
|
return result.then((resolved) => {
|
|
147
157
|
if (span) {
|
|
158
|
+
if (options?.resultFilter) {
|
|
159
|
+
const filtered = options.resultFilter(resolved);
|
|
160
|
+
if (filtered && typeof filtered === "object") {
|
|
161
|
+
for (const [key, value] of Object.entries(filtered)) {
|
|
162
|
+
span.setAttribute(key, truncate(value));
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
148
166
|
span.setAttribute("result", JSON.stringify(truncate(resolved)));
|
|
149
167
|
span.end(resolved);
|
|
150
168
|
}
|
|
@@ -160,6 +178,14 @@ function wrapFunction(fn, name, options) {
|
|
|
160
178
|
});
|
|
161
179
|
}
|
|
162
180
|
if (span) {
|
|
181
|
+
if (options?.resultFilter) {
|
|
182
|
+
const filtered = options.resultFilter(result);
|
|
183
|
+
if (filtered && typeof filtered === "object") {
|
|
184
|
+
for (const [key, value] of Object.entries(filtered)) {
|
|
185
|
+
span.setAttribute(key, truncate(value));
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
163
189
|
span.setAttribute("result", JSON.stringify(truncate(result)));
|
|
164
190
|
span.end(result);
|
|
165
191
|
}
|
|
@@ -9,12 +9,12 @@ import {
|
|
|
9
9
|
import {
|
|
10
10
|
globalHookManager,
|
|
11
11
|
init_global_hook_manager
|
|
12
|
-
} from "./roy-agent-core-
|
|
12
|
+
} from "./roy-agent-core-dbkkjmqz.js";
|
|
13
13
|
import {
|
|
14
14
|
TracedAs,
|
|
15
15
|
init_decorator,
|
|
16
16
|
wrapFunction
|
|
17
|
-
} from "./roy-agent-core-
|
|
17
|
+
} from "./roy-agent-core-fdm579b1.js";
|
|
18
18
|
import {
|
|
19
19
|
createLogger,
|
|
20
20
|
init_logger
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createHook
|
|
3
|
-
} from "./roy-agent-core-
|
|
3
|
+
} from "./roy-agent-core-r74v00c7.js";
|
|
4
4
|
import {
|
|
5
5
|
HookManager
|
|
6
|
-
} from "./roy-agent-core-
|
|
6
|
+
} from "./roy-agent-core-dbkkjmqz.js";
|
|
7
7
|
|
|
8
8
|
// src/env/component.ts
|
|
9
9
|
class BaseComponent {
|
|
@@ -12,11 +12,11 @@ import {
|
|
|
12
12
|
} from "./roy-agent-core-qxhq8ven.js";
|
|
13
13
|
import {
|
|
14
14
|
BaseComponent
|
|
15
|
-
} from "./roy-agent-core-
|
|
15
|
+
} from "./roy-agent-core-j62bjagf.js";
|
|
16
16
|
import {
|
|
17
17
|
TracedAs,
|
|
18
18
|
init_decorator
|
|
19
|
-
} from "./roy-agent-core-
|
|
19
|
+
} from "./roy-agent-core-fdm579b1.js";
|
|
20
20
|
import {
|
|
21
21
|
createLogger,
|
|
22
22
|
init_logger
|
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
WorkflowRepository,
|
|
3
3
|
migrateEmptyTagsToDefault,
|
|
4
4
|
rowToWorkflow
|
|
5
|
-
} from "./roy-agent-core-
|
|
6
|
-
import"./roy-agent-core-
|
|
5
|
+
} from "./roy-agent-core-1mq9erp8.js";
|
|
6
|
+
import"./roy-agent-core-606z25nw.js";
|
|
7
7
|
import"./roy-agent-core-rvxg1wps.js";
|
|
8
|
-
import"./roy-agent-core-
|
|
8
|
+
import"./roy-agent-core-fdm579b1.js";
|
|
9
9
|
import"./roy-agent-core-vyygk314.js";
|
|
10
10
|
import"./roy-agent-core-7z9b1fm8.js";
|
|
11
11
|
import"./roy-agent-core-c6592r3c.js";
|