@ai-setting/roy-agent-core 1.6.8 → 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.
Files changed (75) hide show
  1. package/dist/config/index.js +7 -7
  2. package/dist/env/agent/index.js +9 -9
  3. package/dist/env/commands/index.js +7 -7
  4. package/dist/env/context/index.js +3 -3
  5. package/dist/env/debug/index.js +7 -7
  6. package/dist/env/event-source/index.js +10 -10
  7. package/dist/env/hook/index.js +5 -5
  8. package/dist/env/index.js +29 -28
  9. package/dist/env/llm/index.js +7 -7
  10. package/dist/env/log-trace/index.js +7 -7
  11. package/dist/env/mcp/index.js +7 -7
  12. package/dist/env/memory/index.js +7 -7
  13. package/dist/env/plugin/index.js +7 -7
  14. package/dist/env/prompt/index.js +8 -8
  15. package/dist/env/session/index.js +7 -7
  16. package/dist/env/skill/index.js +7 -7
  17. package/dist/env/task/delegate/index.js +8 -7
  18. package/dist/env/task/index.js +12 -11
  19. package/dist/env/task/plugins/index.js +5 -5
  20. package/dist/env/task/tools/index.js +3 -3
  21. package/dist/env/tool/built-in/index.js +2 -2
  22. package/dist/env/tool/index.js +8 -8
  23. package/dist/env/workflow/engine/index.js +8 -8
  24. package/dist/env/workflow/index.js +16 -15
  25. package/dist/env/workflow/nodes/index.js +2 -2
  26. package/dist/env/workflow/service/index.js +2 -2
  27. package/dist/env/workflow/storage/index.js +3 -3
  28. package/dist/env/workflow/tools/index.js +10 -9
  29. package/dist/env/workflow/utils/index.js +2 -2
  30. package/dist/index.js +39 -38
  31. package/dist/shared/@ai-setting/{roy-agent-core-2vevsd36.js → roy-agent-core-062gyaz8.js} +8 -5
  32. package/dist/shared/@ai-setting/{roy-agent-core-12ttd2w1.js → roy-agent-core-0cftbg62.js} +5 -5
  33. package/dist/shared/@ai-setting/{roy-agent-core-jexyz11d.js → roy-agent-core-1mq9erp8.js} +1 -1
  34. package/dist/shared/@ai-setting/{roy-agent-core-wmkx79b1.js → roy-agent-core-1qcpvtp8.js} +2 -2
  35. package/dist/shared/@ai-setting/{roy-agent-core-b77yz0wt.js → roy-agent-core-606z25nw.js} +1 -1
  36. package/dist/shared/@ai-setting/{roy-agent-core-971gwby7.js → roy-agent-core-7rsfynhz.js} +4 -4
  37. package/dist/shared/@ai-setting/{roy-agent-core-2r1rc0fe.js → roy-agent-core-80bdhnwk.js} +4 -4
  38. package/dist/shared/@ai-setting/{roy-agent-core-c94yan0b.js → roy-agent-core-8bhncxep.js} +101 -17
  39. package/dist/shared/@ai-setting/{roy-agent-core-zttjq1h3.js → roy-agent-core-9hqqhye6.js} +1 -1
  40. package/dist/shared/@ai-setting/{roy-agent-core-gdkq55yg.js → roy-agent-core-9zf4jmgh.js} +6 -6
  41. package/dist/shared/@ai-setting/{roy-agent-core-b2thb9xj.js → roy-agent-core-atjd1tpt.js} +1 -1
  42. package/dist/shared/@ai-setting/{roy-agent-core-33rhv946.js → roy-agent-core-brfryc0b.js} +1 -1
  43. package/dist/shared/@ai-setting/roy-agent-core-c1v263jn.js +11 -0
  44. package/dist/shared/@ai-setting/{roy-agent-core-gp872e7m.js → roy-agent-core-dbkkjmqz.js} +2 -2
  45. package/dist/shared/@ai-setting/{roy-agent-core-zwwkczvj.js → roy-agent-core-e34xdjwa.js} +23 -14
  46. package/dist/shared/@ai-setting/{roy-agent-core-scp0afxg.js → roy-agent-core-endah27g.js} +1 -1
  47. package/dist/shared/@ai-setting/{roy-agent-core-ddghwfmk.js → roy-agent-core-f79ee0aw.js} +2 -2
  48. package/dist/shared/@ai-setting/{roy-agent-core-cg146hmg.js → roy-agent-core-fdm579b1.js} +28 -2
  49. package/dist/shared/@ai-setting/{roy-agent-core-w7mhnc4c.js → roy-agent-core-g2ntbc33.js} +2 -2
  50. package/dist/shared/@ai-setting/{roy-agent-core-xgnpr28w.js → roy-agent-core-htjag2nr.js} +1 -1
  51. package/dist/shared/@ai-setting/{roy-agent-core-pf1c360e.js → roy-agent-core-j62bjagf.js} +2 -2
  52. package/dist/shared/@ai-setting/{roy-agent-core-d2bmfnb5.js → roy-agent-core-jmzz2yxs.js} +2 -2
  53. package/dist/shared/@ai-setting/{roy-agent-core-sssn8kt9.js → roy-agent-core-jw0hbacv.js} +3 -3
  54. package/dist/shared/@ai-setting/{roy-agent-core-bqwj1dq0.js → roy-agent-core-kxtkz66a.js} +1 -1
  55. package/dist/shared/@ai-setting/{roy-agent-core-578qk38y.js → roy-agent-core-np2vh6ya.js} +1 -1
  56. package/dist/shared/@ai-setting/{roy-agent-core-b75jtybq.js → roy-agent-core-p2vpsd1d.js} +1 -1
  57. package/dist/shared/@ai-setting/{roy-agent-core-gw43m8yd.js → roy-agent-core-p6x6n3k4.js} +1 -1
  58. package/dist/shared/@ai-setting/{roy-agent-core-cx67bv9d.js → roy-agent-core-q1ksqes1.js} +1 -1
  59. package/dist/shared/@ai-setting/{roy-agent-core-cx9p8b2t.js → roy-agent-core-qbm5zy6s.js} +3 -3
  60. package/dist/shared/@ai-setting/{roy-agent-core-jzza6c2r.js → roy-agent-core-qdgaghhw.js} +6 -6
  61. package/dist/shared/@ai-setting/{roy-agent-core-hf8pqrvy.js → roy-agent-core-qfdj8872.js} +2 -2
  62. package/dist/shared/@ai-setting/{roy-agent-core-ka4b12eg.js → roy-agent-core-qyarxwzg.js} +25 -5
  63. package/dist/shared/@ai-setting/{roy-agent-core-ksx9a556.js → roy-agent-core-r74v00c7.js} +1 -1
  64. package/dist/shared/@ai-setting/{roy-agent-core-0tfv18rf.js → roy-agent-core-resnbd2j.js} +1 -1
  65. package/dist/shared/@ai-setting/{roy-agent-core-sxqy40cs.js → roy-agent-core-rpq0mcvv.js} +1 -1
  66. package/dist/shared/@ai-setting/{roy-agent-core-r08qk37k.js → roy-agent-core-sd3v4kaq.js} +3 -3
  67. package/dist/shared/@ai-setting/{roy-agent-core-02n40zbs.js → roy-agent-core-sk4xg1dw.js} +39 -25
  68. package/dist/shared/@ai-setting/{roy-agent-core-634ee5jb.js → roy-agent-core-tbn8cerp.js} +1 -1
  69. package/dist/shared/@ai-setting/{roy-agent-core-4extx33r.js → roy-agent-core-trdpar9f.js} +49 -183
  70. package/dist/shared/@ai-setting/{roy-agent-core-8jmkghjc.js → roy-agent-core-w1e55apa.js} +5 -5
  71. package/dist/shared/@ai-setting/{roy-agent-core-q88vxmx5.js → roy-agent-core-w22tzjj5.js} +1 -1
  72. package/dist/shared/@ai-setting/{roy-agent-core-as3phr7n.js → roy-agent-core-wqe84f84.js} +15 -6
  73. package/dist/shared/@ai-setting/{roy-agent-core-jayzyg7h.js → roy-agent-core-y5ymc4f8.js} +6 -6
  74. package/dist/shared/@ai-setting/{roy-agent-core-34xt19yg.js → roy-agent-core-yk0n6j67.js} +11 -11
  75. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  builtInPrompts
3
- } from "./roy-agent-core-4extx33r.js";
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-pf1c360e.js";
13
+ } from "./roy-agent-core-j62bjagf.js";
14
14
  import {
15
15
  createHook
16
- } from "./roy-agent-core-ksx9a556.js";
16
+ } from "./roy-agent-core-r74v00c7.js";
17
17
  import {
18
18
  globalHookManager,
19
19
  init_global_hook_manager
20
- } from "./roy-agent-core-gp872e7m.js";
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-pf1c360e.js";
6
+ } from "./roy-agent-core-j62bjagf.js";
7
7
  import {
8
8
  globalHookManager,
9
9
  init_global_hook_manager
10
- } from "./roy-agent-core-gp872e7m.js";
10
+ } from "./roy-agent-core-dbkkjmqz.js";
11
11
  import {
12
12
  init_context
13
- } from "./roy-agent-core-zttjq1h3.js";
13
+ } from "./roy-agent-core-9hqqhye6.js";
14
14
  import {
15
15
  getEnvContextOrEmpty
16
- } from "./roy-agent-core-scp0afxg.js";
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-4extx33r.js";
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-as3phr7n.js";
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-gp872e7m.js";
20
+ } from "./roy-agent-core-dbkkjmqz.js";
18
21
  import {
19
22
  init_context
20
- } from "./roy-agent-core-zttjq1h3.js";
23
+ } from "./roy-agent-core-9hqqhye6.js";
21
24
  import {
22
25
  getCurrentTaskId
23
- } from "./roy-agent-core-scp0afxg.js";
26
+ } from "./roy-agent-core-endah27g.js";
24
27
  import {
25
28
  TracedAs,
26
- init_decorator
27
- } from "./roy-agent-core-cg146hmg.js";
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
- 请通过 \`workflow run\` 命令调度对应 workflow。
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. \`workflow get ${workflowName}\` workflow 入参 schema
254
+ 1. \`workflow_get(${workflowName})\` workflow 入参 schema
249
255
  2. 从"原始用户请求"提取符合 schema 的 input 字段
250
- 3. \`workflow run ${workflowName} --input '<json>'\` 触发 workflow
251
- 4. 返回结果
256
+ 3. \`workflow_run(${workflowName}, input)\` 触发 workflow
257
+ 4. 把 output 原样回给 parent agent
252
258
 
253
- 不要做其他工作。只走 \`workflow run\` 路径。
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
- static DEFAULT_WORKFLOW_ENTRY_AGENT = "workflow-agent";
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()) : Promise.resolve(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);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_env_context
3
- } from "./roy-agent-core-scp0afxg.js";
3
+ } from "./roy-agent-core-endah27g.js";
4
4
  import {
5
5
  __esm
6
6
  } from "./roy-agent-core-fs0mn2jk.js";
@@ -8,7 +8,7 @@ import {
8
8
  BackgroundTaskManager,
9
9
  createDelegateTool,
10
10
  createStopTool
11
- } from "./roy-agent-core-c94yan0b.js";
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-sxqy40cs.js";
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-pf1c360e.js";
43
+ } from "./roy-agent-core-j62bjagf.js";
44
44
  import {
45
45
  globalHookManager,
46
46
  init_global_hook_manager
47
- } from "./roy-agent-core-gp872e7m.js";
47
+ } from "./roy-agent-core-dbkkjmqz.js";
48
48
  import {
49
49
  getEnvContextOrEmpty,
50
50
  init_env_context
51
- } from "./roy-agent-core-scp0afxg.js";
51
+ } from "./roy-agent-core-endah27g.js";
52
52
  import {
53
53
  TracedAs,
54
54
  init_decorator
55
- } from "./roy-agent-core-cg146hmg.js";
55
+ } from "./roy-agent-core-fdm579b1.js";
56
56
  import {
57
57
  createLogger,
58
58
  init_logger
@@ -4,7 +4,7 @@ import {
4
4
  } from "./roy-agent-core-rvv6ydff.js";
5
5
  import {
6
6
  BaseComponent
7
- } from "./roy-agent-core-pf1c360e.js";
7
+ } from "./roy-agent-core-j62bjagf.js";
8
8
  import {
9
9
  __require
10
10
  } from "./roy-agent-core-fs0mn2jk.js";
@@ -7,7 +7,7 @@ import {
7
7
  } from "./roy-agent-core-qxhq8ven.js";
8
8
  import {
9
9
  BaseComponent
10
- } from "./roy-agent-core-pf1c360e.js";
10
+ } from "./roy-agent-core-j62bjagf.js";
11
11
  import {
12
12
  __require
13
13
  } from "./roy-agent-core-fs0mn2jk.js";
@@ -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-zttjq1h3.js";
3
+ } from "./roy-agent-core-9hqqhye6.js";
4
4
  import {
5
5
  getEnvContext
6
- } from "./roy-agent-core-scp0afxg.js";
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-xgnpr28w.js";
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-2vevsd36.js";
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-ka4b12eg.js";
21
+ } from "./roy-agent-core-qyarxwzg.js";
22
22
  import {
23
23
  WorkflowService
24
- } from "./roy-agent-core-b75jtybq.js";
24
+ } from "./roy-agent-core-p2vpsd1d.js";
25
25
  import {
26
26
  BaseComponent
27
- } from "./roy-agent-core-pf1c360e.js";
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-ddghwfmk.js");
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-ddghwfmk.js");
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-8jmkghjc.js");
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-cx9p8b2t.js");
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-cx9p8b2t.js");
235
- const { WorkflowRepository } = await import("./roy-agent-core-sssn8kt9.js");
236
- const { TagRepository } = await import("./roy-agent-core-hf8pqrvy.js");
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-cx9p8b2t.js");
311
+ const { closeDatabase } = await import("./roy-agent-core-qbm5zy6s.js");
303
312
  closeDatabase();
304
313
  } catch {}
305
314
  this._status = "stopped";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_decorator,
3
3
  wrapFunction
4
- } from "./roy-agent-core-cg146hmg.js";
4
+ } from "./roy-agent-core-fdm579b1.js";
5
5
  import {
6
6
  createLogger,
7
7
  init_logger
@@ -3,10 +3,10 @@ import {
3
3
  hasDecoratorNodes,
4
4
  init_node_registry_helper,
5
5
  registerDecoratorNodeType
6
- } from "./roy-agent-core-xgnpr28w.js";
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-cg146hmg.js";
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
- attributes["params"] = truncate(options.paramFilter(args));
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-gp872e7m.js";
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-cg146hmg.js";
17
+ } from "./roy-agent-core-fdm579b1.js";
18
18
  import {
19
19
  createLogger,
20
20
  init_logger
@@ -9,7 +9,7 @@ import {
9
9
  import {
10
10
  TracedAs,
11
11
  init_decorator
12
- } from "./roy-agent-core-cg146hmg.js";
12
+ } from "./roy-agent-core-fdm579b1.js";
13
13
  import {
14
14
  createLogger,
15
15
  init_logger
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  createHook
3
- } from "./roy-agent-core-ksx9a556.js";
3
+ } from "./roy-agent-core-r74v00c7.js";
4
4
  import {
5
5
  HookManager
6
- } from "./roy-agent-core-gp872e7m.js";
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-pf1c360e.js";
15
+ } from "./roy-agent-core-j62bjagf.js";
16
16
  import {
17
17
  TracedAs,
18
18
  init_decorator
19
- } from "./roy-agent-core-cg146hmg.js";
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-jexyz11d.js";
6
- import"./roy-agent-core-b77yz0wt.js";
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-cg146hmg.js";
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";
@@ -14,7 +14,7 @@ import {
14
14
  } from "./roy-agent-core-qxhq8ven.js";
15
15
  import {
16
16
  BaseComponent
17
- } from "./roy-agent-core-pf1c360e.js";
17
+ } from "./roy-agent-core-j62bjagf.js";
18
18
  import {
19
19
  createLogger,
20
20
  init_logger
@@ -4,7 +4,7 @@ import {
4
4
  } from "./roy-agent-core-qxhq8ven.js";
5
5
  import {
6
6
  BaseComponent
7
- } from "./roy-agent-core-pf1c360e.js";
7
+ } from "./roy-agent-core-j62bjagf.js";
8
8
  import {
9
9
  createLogger,
10
10
  init_logger
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  TracedAs,
3
3
  init_decorator
4
- } from "./roy-agent-core-cg146hmg.js";
4
+ } from "./roy-agent-core-fdm579b1.js";
5
5
  import {
6
6
  __legacyDecorateClassTS
7
7
  } from "./roy-agent-core-fs0mn2jk.js";
@@ -11,7 +11,7 @@ import {
11
11
  import {
12
12
  init_decorator,
13
13
  wrapFunction
14
- } from "./roy-agent-core-cg146hmg.js";
14
+ } from "./roy-agent-core-fdm579b1.js";
15
15
  import {
16
16
  createLogger,
17
17
  init_logger