@ai-setting/roy-agent-core 1.6.20 → 1.6.22
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 +9 -9
- package/dist/env/agent/index.js +16 -15
- package/dist/env/commands/index.js +9 -9
- package/dist/env/context/index.js +5 -5
- package/dist/env/debug/index.js +9 -9
- package/dist/env/event-source/index.js +14 -13
- package/dist/env/hook/index.js +7 -7
- package/dist/env/index.js +40 -39
- package/dist/env/llm/index.js +11 -11
- package/dist/env/log-trace/index.js +9 -9
- package/dist/env/mcp/index.js +10 -10
- package/dist/env/mcp/tool/index.js +3 -3
- package/dist/env/memory/index.js +10 -10
- package/dist/env/memory/plugin/index.js +3 -3
- package/dist/env/plugin/index.js +9 -9
- package/dist/env/prompt/index.js +9 -9
- package/dist/env/session/index.js +12 -12
- package/dist/env/session/storage/index.js +5 -5
- package/dist/env/skill/index.js +9 -9
- package/dist/env/task/delegate/index.js +9 -9
- package/dist/env/task/index.js +14 -14
- package/dist/env/task/plugins/index.js +9 -8
- package/dist/env/task/storage/index.js +4 -4
- package/dist/env/task/tools/index.js +5 -5
- package/dist/env/tool/built-in/index.js +5 -5
- package/dist/env/tool/index.js +12 -12
- package/dist/env/workflow/engine/index.js +11 -11
- package/dist/env/workflow/index.js +22 -22
- package/dist/env/workflow/nodes/index.js +4 -4
- package/dist/env/workflow/service/index.js +4 -4
- package/dist/env/workflow/storage/index.js +5 -5
- package/dist/env/workflow/tools/index.js +16 -16
- package/dist/env/workflow/utils/index.js +6 -6
- package/dist/index.js +51 -50
- package/dist/shared/@ai-setting/{roy-agent-core-8n3je2r0.js → roy-agent-core-067w3nt1.js} +120 -28
- package/dist/shared/@ai-setting/{roy-agent-core-7kw06e4b.js → roy-agent-core-0qjw25e8.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-bq1gskrf.js → roy-agent-core-0v74marc.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-e0kaxcy1.js → roy-agent-core-12gac5zn.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-f1cjs6c4.js → roy-agent-core-16dqrewm.js} +6 -6
- package/dist/shared/@ai-setting/{roy-agent-core-7r72622v.js → roy-agent-core-1k9j90s7.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-m00kamqp.js → roy-agent-core-1khp1m0r.js} +8 -1
- package/dist/shared/@ai-setting/{roy-agent-core-77wfej1h.js → roy-agent-core-3e0w0ekw.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-zdzkzx5g.js → roy-agent-core-3ep1dxf1.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-gc75v3px.js → roy-agent-core-3x3k7gfs.js} +5 -5
- package/dist/shared/@ai-setting/roy-agent-core-4k8tv5q5.js +11 -0
- package/dist/shared/@ai-setting/{roy-agent-core-02aw62bv.js → roy-agent-core-5ts23mx0.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-atpchjdz.js → roy-agent-core-6m2gh57e.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-ehpnd2be.js → roy-agent-core-6re7eg4w.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-ett06sn8.js → roy-agent-core-7cxdkcrz.js} +4 -4
- package/dist/shared/@ai-setting/{roy-agent-core-416rpxkp.js → roy-agent-core-7wv7gh6t.js} +5 -5
- package/dist/shared/@ai-setting/{roy-agent-core-fxembepv.js → roy-agent-core-90wp1rgb.js} +5 -5
- package/dist/shared/@ai-setting/{roy-agent-core-zs4f0tcy.js → roy-agent-core-afb03wwp.js} +130 -3
- package/dist/shared/@ai-setting/{roy-agent-core-5pzegp1x.js → roy-agent-core-b64s2vk9.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-ataagh3a.js → roy-agent-core-br7dmedr.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-8n0e62y4.js → roy-agent-core-c1stgqnw.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-gmnex23m.js → roy-agent-core-cjraf54z.js} +3 -3
- package/dist/shared/@ai-setting/{roy-agent-core-kkt2ndpf.js → roy-agent-core-dbwvfe0m.js} +5 -5
- package/dist/shared/@ai-setting/{roy-agent-core-mdp8y7ky.js → roy-agent-core-dxfd6p1c.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-wsqnf2za.js → roy-agent-core-ef486rdm.js} +7 -7
- package/dist/shared/@ai-setting/{roy-agent-core-bqe4c9f2.js → roy-agent-core-f2nync7q.js} +12 -4
- package/dist/shared/@ai-setting/{roy-agent-core-dh9rajdh.js → roy-agent-core-g7nmwg63.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-96mj6gvc.js → roy-agent-core-gb7pm9c0.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-grajzyhd.js → roy-agent-core-gns3wa97.js} +14 -18
- package/dist/shared/@ai-setting/{roy-agent-core-ez91vxas.js → roy-agent-core-h1cb2jzh.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-eskgj8nc.js → roy-agent-core-h28gcd77.js} +6 -6
- package/dist/shared/@ai-setting/{roy-agent-core-rdf8tqj7.js → roy-agent-core-h4sm7fyb.js} +8 -8
- package/dist/shared/@ai-setting/{roy-agent-core-sqt96sam.js → roy-agent-core-h7ak839w.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-c7e3htaq.js → roy-agent-core-hks28tys.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-vc7p80sd.js → roy-agent-core-j29yg06n.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-r15sn7ve.js → roy-agent-core-j9ybhwnq.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-nna4s0qs.js → roy-agent-core-kaq037np.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-e9jf4w3z.js → roy-agent-core-kv7frw13.js} +4 -4
- package/dist/shared/@ai-setting/{roy-agent-core-44g3synv.js → roy-agent-core-mvs5sen6.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-zeztnvvb.js → roy-agent-core-mz69jdvv.js} +178 -78
- package/dist/shared/@ai-setting/{roy-agent-core-akb8mb9v.js → roy-agent-core-pde8hkq4.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-p4z6nxgz.js → roy-agent-core-pdnp5kj0.js} +4 -4
- package/dist/shared/@ai-setting/{roy-agent-core-1qjgwjjs.js → roy-agent-core-pz2n121t.js} +4 -4
- package/dist/shared/@ai-setting/{roy-agent-core-wr3pk3h3.js → roy-agent-core-qe3m3hec.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-v20nxrs1.js → roy-agent-core-qpt5fa8h.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-keb51jag.js → roy-agent-core-rs5tp44j.js} +4 -4
- package/dist/shared/@ai-setting/{roy-agent-core-2b0mw2h3.js → roy-agent-core-s07nere5.js} +3 -3
- package/dist/shared/@ai-setting/{roy-agent-core-ajp566yv.js → roy-agent-core-sfwt66pv.js} +2 -2
- package/dist/shared/@ai-setting/roy-agent-core-t3yqzgse.js +71 -0
- package/dist/shared/@ai-setting/{roy-agent-core-xzc53mnk.js → roy-agent-core-t9h4np6m.js} +4 -2
- package/dist/shared/@ai-setting/{roy-agent-core-1mrc9a1r.js → roy-agent-core-w8rv08d3.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-b9q2jfx4.js → roy-agent-core-watkmj7d.js} +6 -6
- package/dist/shared/@ai-setting/{roy-agent-core-bwqjwa0d.js → roy-agent-core-wr1pgw0x.js} +8 -8
- package/dist/shared/@ai-setting/{roy-agent-core-fntxq0gf.js → roy-agent-core-x0yztmm6.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-dtkbj8fk.js → roy-agent-core-xrr7t0qc.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-mekk4as5.js → roy-agent-core-xwnpygva.js} +14 -14
- package/dist/shared/@ai-setting/{roy-agent-core-pr4jekyy.js → roy-agent-core-z2w7wtqd.js} +5 -5
- package/dist/utils/temp-file-manager/index.js +3 -3
- package/package.json +1 -1
- package/dist/shared/@ai-setting/roy-agent-core-w6kj6nmj.js +0 -11
|
@@ -1,51 +1,54 @@
|
|
|
1
1
|
import {
|
|
2
2
|
withTimeout
|
|
3
|
-
} from "./roy-agent-core-
|
|
3
|
+
} from "./roy-agent-core-c1stgqnw.js";
|
|
4
4
|
import {
|
|
5
5
|
truncateOutputInline
|
|
6
|
-
} from "./roy-agent-core-
|
|
6
|
+
} from "./roy-agent-core-h28gcd77.js";
|
|
7
|
+
import {
|
|
8
|
+
enqueueToAddFakeUserMessage
|
|
9
|
+
} from "./roy-agent-core-t3yqzgse.js";
|
|
7
10
|
import {
|
|
8
11
|
AskUserError,
|
|
9
12
|
init_workflow_hil
|
|
10
13
|
} from "./roy-agent-core-e25xkv53.js";
|
|
11
14
|
import {
|
|
12
15
|
AgentRegistry
|
|
13
|
-
} from "./roy-agent-core-
|
|
16
|
+
} from "./roy-agent-core-x0yztmm6.js";
|
|
14
17
|
import {
|
|
15
18
|
ContextError
|
|
16
19
|
} from "./roy-agent-core-ctdhjv68.js";
|
|
17
20
|
import {
|
|
18
21
|
SessionMessageConverter
|
|
19
|
-
} from "./roy-agent-core-
|
|
22
|
+
} from "./roy-agent-core-1k9j90s7.js";
|
|
20
23
|
import {
|
|
21
24
|
safeParseToolArgs
|
|
22
|
-
} from "./roy-agent-core-
|
|
25
|
+
} from "./roy-agent-core-12gac5zn.js";
|
|
23
26
|
import {
|
|
24
27
|
envKeyToConfigKey
|
|
25
28
|
} from "./roy-agent-core-7hh0brvs.js";
|
|
26
29
|
import {
|
|
27
30
|
BaseComponent
|
|
28
|
-
} from "./roy-agent-core-
|
|
31
|
+
} from "./roy-agent-core-pde8hkq4.js";
|
|
29
32
|
import {
|
|
30
33
|
globalHookManager,
|
|
31
34
|
init_global_hook_manager
|
|
32
|
-
} from "./roy-agent-core-
|
|
35
|
+
} from "./roy-agent-core-j29yg06n.js";
|
|
33
36
|
import {
|
|
34
37
|
init_context
|
|
35
|
-
} from "./roy-agent-core-
|
|
38
|
+
} from "./roy-agent-core-h7ak839w.js";
|
|
36
39
|
import {
|
|
37
40
|
getCurrentTaskId,
|
|
38
41
|
getEnvContext,
|
|
39
42
|
runWithEnvContextAsync
|
|
40
|
-
} from "./roy-agent-core-
|
|
43
|
+
} from "./roy-agent-core-xrr7t0qc.js";
|
|
41
44
|
import {
|
|
42
45
|
TracedAs,
|
|
43
46
|
init_decorator
|
|
44
|
-
} from "./roy-agent-core-
|
|
47
|
+
} from "./roy-agent-core-gb7pm9c0.js";
|
|
45
48
|
import {
|
|
46
49
|
createLogger,
|
|
47
50
|
init_logger
|
|
48
|
-
} from "./roy-agent-core-
|
|
51
|
+
} from "./roy-agent-core-kaq037np.js";
|
|
49
52
|
import {
|
|
50
53
|
__legacyDecorateClassTS,
|
|
51
54
|
__require
|
|
@@ -55,6 +58,102 @@ import {
|
|
|
55
58
|
init_logger();
|
|
56
59
|
import { z } from "zod";
|
|
57
60
|
|
|
61
|
+
// src/env/task/plugins/max-iteration-reminder-plugin.ts
|
|
62
|
+
init_logger();
|
|
63
|
+
init_decorator();
|
|
64
|
+
var logger = createLogger("MaxIterationReminderPlugin");
|
|
65
|
+
var DEFAULT_REMINDER_MESSAGE = `⚠️ **系统提醒**: 你已经达到最大 ReAct 迭代次数({maxIterations}次)。
|
|
66
|
+
|
|
67
|
+
**请不要再调用任何工具**,利用目前已有的信息直接给用户一个简洁明了的总结,包括:
|
|
68
|
+
1. 目前的进展
|
|
69
|
+
2. 已完成的工作
|
|
70
|
+
3. 遇到的问题(如有)
|
|
71
|
+
4. 下一步建议(如有)
|
|
72
|
+
|
|
73
|
+
总结后立即结束,不要继续工具调用。`;
|
|
74
|
+
|
|
75
|
+
class MaxIterationReminderPlugin {
|
|
76
|
+
name = "MaxIterationReminderPlugin";
|
|
77
|
+
version = "3.0.0";
|
|
78
|
+
description = "在 iteration === maxIterations - 1 时通过共享 meta-protocol helper 注入 fake user 消息;AgentComponent 现有 for-loop 后 flush;适用于所有 agent。maxIterations<=1 防御性跳过。";
|
|
79
|
+
priority = 50;
|
|
80
|
+
messageTemplate;
|
|
81
|
+
injectedTraceIds = new Set;
|
|
82
|
+
constructor(config) {
|
|
83
|
+
this.messageTemplate = config?.messageTemplate ?? DEFAULT_REMINDER_MESSAGE;
|
|
84
|
+
}
|
|
85
|
+
async execute(ctx) {
|
|
86
|
+
const { iteration, maxIterations } = ctx;
|
|
87
|
+
const traceId = ctx.context?.traceId ?? ctx.context?.sessionId ?? "unknown";
|
|
88
|
+
const kind = "max-iter";
|
|
89
|
+
const makeResult = (willSet, reason) => {
|
|
90
|
+
const decision = { willSet, iteration, maxIterations, kind, reason, traceId };
|
|
91
|
+
return { continue: true, __maxIterDecision: decision };
|
|
92
|
+
};
|
|
93
|
+
if (typeof iteration !== "number" || typeof maxIterations !== "number") {
|
|
94
|
+
logger.debug(`[MaxIterReminder] skip — non-numeric iter=${iteration} or maxIter=${maxIterations}`);
|
|
95
|
+
return makeResult(false, "non-numeric-iter-or-maxIter");
|
|
96
|
+
}
|
|
97
|
+
if (maxIterations <= 1) {
|
|
98
|
+
logger.debug(`[MaxIterReminder] skip — maxIterations=${maxIterations} <= 1 (one-shot agent)`);
|
|
99
|
+
return makeResult(false, "max-iterations-le-1");
|
|
100
|
+
}
|
|
101
|
+
if (iteration !== maxIterations - 1) {
|
|
102
|
+
return makeResult(false, "iter-not-equal-max-iter-minus-1");
|
|
103
|
+
}
|
|
104
|
+
if (!ctx.toolResult) {
|
|
105
|
+
logger.warn(`[MaxIterReminder] skip — toolResult missing at iter=${iteration}`);
|
|
106
|
+
return makeResult(false, "no-tool-result");
|
|
107
|
+
}
|
|
108
|
+
if (this.injectedTraceIds.has(traceId)) {
|
|
109
|
+
logger.debug(`[MaxIterReminder] skip — traceId=${traceId.slice(0, 20)} already processed`);
|
|
110
|
+
return makeResult(false, "trace-id-already-processed");
|
|
111
|
+
}
|
|
112
|
+
const reminderContent = this.messageTemplate.replace(/\{maxIterations\}/g, String(maxIterations));
|
|
113
|
+
enqueueToAddFakeUserMessage(ctx.toolResult, {
|
|
114
|
+
role: "user",
|
|
115
|
+
content: reminderContent
|
|
116
|
+
}, kind);
|
|
117
|
+
this.injectedTraceIds.add(traceId);
|
|
118
|
+
logger.info(`[MaxIterReminder] max-iter reminder meta-protocol set (session=${(ctx.context?.sessionId ?? "unknown").slice(0, 12)}..., iteration=${iteration}, maxIterations=${maxIterations})`);
|
|
119
|
+
return makeResult(true, "fired");
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
__legacyDecorateClassTS([
|
|
123
|
+
TracedAs("plugin.max-iter-reminder.evaluate", {
|
|
124
|
+
recordParams: false,
|
|
125
|
+
recordResult: false,
|
|
126
|
+
log: true,
|
|
127
|
+
resultFilter: (result) => {
|
|
128
|
+
const d = result?.__maxIterDecision;
|
|
129
|
+
if (!d)
|
|
130
|
+
return {};
|
|
131
|
+
return {
|
|
132
|
+
"max-iter.iteration": d.iteration,
|
|
133
|
+
"max-iter.max_iterations": d.maxIterations,
|
|
134
|
+
"max-iter.will_set": d.willSet,
|
|
135
|
+
"max-iter.kind": d.kind,
|
|
136
|
+
"max-iter.reason": d.reason,
|
|
137
|
+
"max-iter.trace_id": d.traceId
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
})
|
|
141
|
+
], MaxIterationReminderPlugin.prototype, "execute", null);
|
|
142
|
+
function createMaxIterationReminderPlugin(config) {
|
|
143
|
+
const inst = new MaxIterationReminderPlugin(config);
|
|
144
|
+
return {
|
|
145
|
+
name: inst.name,
|
|
146
|
+
version: inst.version,
|
|
147
|
+
description: inst.description,
|
|
148
|
+
hooks: [
|
|
149
|
+
{ point: "agent:after.tool", priority: inst.priority }
|
|
150
|
+
],
|
|
151
|
+
execute: async (ctx) => {
|
|
152
|
+
return inst.execute(ctx);
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
|
|
58
157
|
// src/env/agent/agent-config-registration.ts
|
|
59
158
|
var AGENT_DEFAULTS = {
|
|
60
159
|
"agent.defaultAgent.maxIterations": 200,
|
|
@@ -128,7 +227,7 @@ function composeToolOutputForLLM(toolName, result) {
|
|
|
128
227
|
}
|
|
129
228
|
return `${tag} tool=${toolName} status=${status} (no error message and no runId — tool did not surface a diagnostic)`;
|
|
130
229
|
}
|
|
131
|
-
var
|
|
230
|
+
var logger2 = createLogger("agent:component");
|
|
132
231
|
function toLLMMessage(msg) {
|
|
133
232
|
let content;
|
|
134
233
|
let toolCallId;
|
|
@@ -350,7 +449,7 @@ class AgentComponent extends BaseComponent {
|
|
|
350
449
|
allowedTools: parseToolList(constructorDefaultAgent?.allowedTools ?? configComponent.get("agent.defaultAgent.allowedTools")),
|
|
351
450
|
deniedTools: parseToolList(constructorDefaultAgent?.deniedTools ?? configComponent.get("agent.defaultAgent.deniedTools"))
|
|
352
451
|
};
|
|
353
|
-
|
|
452
|
+
logger2.info(`[registerConfig] Synced config from ConfigComponent: maxIterations=${this.config.defaultAgent.maxIterations}`);
|
|
354
453
|
this.registerConfigWatcher(configComponent);
|
|
355
454
|
}
|
|
356
455
|
flattenConfig(obj, prefix = "agent") {
|
|
@@ -374,7 +473,7 @@ class AgentComponent extends BaseComponent {
|
|
|
374
473
|
});
|
|
375
474
|
}
|
|
376
475
|
onConfigChange(event) {
|
|
377
|
-
|
|
476
|
+
logger2.info(`Agent config changed: ${event.key}`, {
|
|
378
477
|
oldValue: event.oldValue,
|
|
379
478
|
newValue: event.newValue
|
|
380
479
|
});
|
|
@@ -386,23 +485,23 @@ class AgentComponent extends BaseComponent {
|
|
|
386
485
|
resolvePromptComponent: () => this.env?.getComponent?.("prompt") ?? null
|
|
387
486
|
});
|
|
388
487
|
const loadedCount = await this.registry.load();
|
|
389
|
-
|
|
488
|
+
logger2.info(`[AgentComponent] Loaded ${loadedCount} agents from config directory`);
|
|
390
489
|
this.registry.registerWorkflowRunner();
|
|
391
|
-
|
|
490
|
+
logger2.info("[AgentComponent] Registered built-in workflow-runner");
|
|
392
491
|
this.registry.registerTaskOrganizer();
|
|
393
|
-
|
|
492
|
+
logger2.info("[AgentComponent] Registered built-in task-organizer");
|
|
394
493
|
this.registry.registerJsonExtractAgent();
|
|
395
|
-
|
|
494
|
+
logger2.info("[AgentComponent] Registered built-in json-extract agent");
|
|
396
495
|
this.registry.registerWorkflowCreator();
|
|
397
|
-
|
|
496
|
+
logger2.info("[AgentComponent] Registered built-in workflow-creator");
|
|
398
497
|
this.registry.registerWorkflowExtractAgent();
|
|
399
|
-
|
|
498
|
+
logger2.info("[AgentComponent] Registered built-in workflow-extract agent");
|
|
400
499
|
this.registry.registerCompactAgent();
|
|
401
|
-
|
|
500
|
+
logger2.info("[AgentComponent] Registered built-in compact agent");
|
|
402
501
|
this.registry.registerCompactHintAgent();
|
|
403
|
-
|
|
502
|
+
logger2.info("[AgentComponent] Registered built-in compact-hint agent");
|
|
404
503
|
this.registry.registerRoyAgent();
|
|
405
|
-
|
|
504
|
+
logger2.info("[AgentComponent] Registered built-in roy agent");
|
|
406
505
|
for (const agentDef of this.registry.list()) {
|
|
407
506
|
if (!this.agents.has(agentDef.name)) {
|
|
408
507
|
const systemPrompt = await this.registry.getSystemPrompt(agentDef.name);
|
|
@@ -415,11 +514,11 @@ class AgentComponent extends BaseComponent {
|
|
|
415
514
|
model: agentDef.model,
|
|
416
515
|
maxIterations: agentDef.maxIterations
|
|
417
516
|
});
|
|
418
|
-
|
|
517
|
+
logger2.debug(`[AgentComponent] Registered agent from config: ${agentDef.name}`);
|
|
419
518
|
}
|
|
420
519
|
}
|
|
421
520
|
} catch (error) {
|
|
422
|
-
|
|
521
|
+
logger2.warn(`[AgentComponent] Failed to initialize AgentRegistry: ${error}`);
|
|
423
522
|
}
|
|
424
523
|
}
|
|
425
524
|
async syncRegistryAgentsFromConfig() {
|
|
@@ -447,7 +546,7 @@ class AgentComponent extends BaseComponent {
|
|
|
447
546
|
maxIterations: agentDef.maxIterations
|
|
448
547
|
});
|
|
449
548
|
}
|
|
450
|
-
|
|
549
|
+
logger2.debug(`[AgentComponent] Synced registry agent: ${agentDef.name}`);
|
|
451
550
|
}
|
|
452
551
|
}
|
|
453
552
|
getRegistry() {
|
|
@@ -460,11 +559,11 @@ class AgentComponent extends BaseComponent {
|
|
|
460
559
|
return this.registry?.list() ?? [];
|
|
461
560
|
}
|
|
462
561
|
async onStop() {
|
|
463
|
-
|
|
562
|
+
logger2.info("[AgentComponent] Stopping and cleaning up resources...");
|
|
464
563
|
for (const [name, agent] of this.agents) {
|
|
465
564
|
if (agent.status === "running" || agent.status === "idle") {
|
|
466
565
|
this.abort(name);
|
|
467
|
-
|
|
566
|
+
logger2.debug(`[AgentComponent] Aborted agent: ${name}`);
|
|
468
567
|
}
|
|
469
568
|
}
|
|
470
569
|
this.abortControllers.clear();
|
|
@@ -475,7 +574,7 @@ class AgentComponent extends BaseComponent {
|
|
|
475
574
|
}
|
|
476
575
|
this.agents.clear();
|
|
477
576
|
this.setStatus("stopped");
|
|
478
|
-
|
|
577
|
+
logger2.info("[AgentComponent] Cleanup completed");
|
|
479
578
|
}
|
|
480
579
|
async refreshDependencies() {
|
|
481
580
|
if (this.env) {
|
|
@@ -498,12 +597,12 @@ class AgentComponent extends BaseComponent {
|
|
|
498
597
|
});
|
|
499
598
|
return result.output?.content ?? "";
|
|
500
599
|
});
|
|
501
|
-
|
|
600
|
+
logger2.debug("[refreshDependencies] understand_image LLM provider injected");
|
|
502
601
|
} catch (err) {
|
|
503
|
-
|
|
602
|
+
logger2.warn(`[refreshDependencies] failed to inject understand_image provider: ${err.message}`);
|
|
504
603
|
}
|
|
505
604
|
}
|
|
506
|
-
|
|
605
|
+
logger2.debug("[refreshDependencies] AgentComponent refreshed", {
|
|
507
606
|
hasLLM: !!this.llmComponent,
|
|
508
607
|
hasTool: !!this.toolComponent
|
|
509
608
|
});
|
|
@@ -517,17 +616,17 @@ class AgentComponent extends BaseComponent {
|
|
|
517
616
|
return;
|
|
518
617
|
}
|
|
519
618
|
if (!this.registry) {
|
|
520
|
-
|
|
619
|
+
logger2.debug(`[resolveSystemPrompt] No registry available for ${agentName}`);
|
|
521
620
|
return;
|
|
522
621
|
}
|
|
523
622
|
try {
|
|
524
623
|
const resolvedPrompt = await this.registry.getSystemPrompt(agentName);
|
|
525
624
|
if (resolvedPrompt) {
|
|
526
625
|
agent.config.systemPrompt = resolvedPrompt;
|
|
527
|
-
|
|
626
|
+
logger2.debug(`[AgentComponent] Resolved systemPrompt for agent: ${agentName}`);
|
|
528
627
|
}
|
|
529
628
|
} catch (error) {
|
|
530
|
-
|
|
629
|
+
logger2.warn(`[AgentComponent] Failed to resolve systemPrompt for agent ${agentName}: ${error}`);
|
|
531
630
|
}
|
|
532
631
|
}
|
|
533
632
|
getAgent(agentName) {
|
|
@@ -575,13 +674,14 @@ class AgentComponent extends BaseComponent {
|
|
|
575
674
|
plugins: new Map
|
|
576
675
|
};
|
|
577
676
|
this.agents.set(name, instance);
|
|
578
|
-
|
|
677
|
+
this.registerPlugin(name, createMaxIterationReminderPlugin());
|
|
678
|
+
logger2.info(`Agent registered: ${name}`, { type: instance.config.type });
|
|
579
679
|
return instance;
|
|
580
680
|
}
|
|
581
681
|
unregisterAgent(name) {
|
|
582
682
|
const deleted = this.agents.delete(name);
|
|
583
683
|
if (deleted) {
|
|
584
|
-
|
|
684
|
+
logger2.info(`Agent unregistered: ${name}`);
|
|
585
685
|
}
|
|
586
686
|
return deleted;
|
|
587
687
|
}
|
|
@@ -591,7 +691,7 @@ class AgentComponent extends BaseComponent {
|
|
|
591
691
|
throw new Error(`Agent not found: ${agentName}`);
|
|
592
692
|
}
|
|
593
693
|
agent.plugins.set(plugin.name, plugin);
|
|
594
|
-
|
|
694
|
+
logger2.info(`Plugin registered: ${plugin.name} to ${agentName}`, {
|
|
595
695
|
hooks: plugin.hooks.map((h) => h.point)
|
|
596
696
|
});
|
|
597
697
|
}
|
|
@@ -602,7 +702,7 @@ class AgentComponent extends BaseComponent {
|
|
|
602
702
|
}
|
|
603
703
|
const deleted = agent.plugins.delete(pluginName);
|
|
604
704
|
if (deleted) {
|
|
605
|
-
|
|
705
|
+
logger2.info(`Plugin unregistered: ${pluginName} from ${agentName}`);
|
|
606
706
|
}
|
|
607
707
|
return deleted;
|
|
608
708
|
}
|
|
@@ -611,7 +711,7 @@ class AgentComponent extends BaseComponent {
|
|
|
611
711
|
}
|
|
612
712
|
getAvailableTools(agent, context) {
|
|
613
713
|
let tools = filterToolsByAgent([...this.defaultTools], agent);
|
|
614
|
-
|
|
714
|
+
logger2.debug(`[getAvailableTools] After defaultTools (filtered): ${tools.length} tools`, {
|
|
615
715
|
toolNames: tools.map((t) => t.name)
|
|
616
716
|
});
|
|
617
717
|
if (this.toolComponent?.listTools) {
|
|
@@ -620,33 +720,33 @@ class AgentComponent extends BaseComponent {
|
|
|
620
720
|
});
|
|
621
721
|
const filteredComponentTools = filterToolsByAgent(componentTools, agent);
|
|
622
722
|
tools = [...tools, ...filteredComponentTools];
|
|
623
|
-
|
|
723
|
+
logger2.debug(`[getAvailableTools] After adding componentTools: ${tools.length} tools`, {
|
|
624
724
|
componentToolNames: filteredComponentTools.map((t) => t.name)
|
|
625
725
|
});
|
|
626
726
|
}
|
|
627
727
|
const allowedTools = context?.allowedTools ?? agent.config.allowedTools;
|
|
628
728
|
const deniedTools = context?.deniedTools ?? agent.config.deniedTools;
|
|
629
|
-
|
|
729
|
+
logger2.debug(`[getAvailableTools] Filtering: allowed=${allowedTools}, denied=${deniedTools}`);
|
|
630
730
|
if (allowedTools !== undefined && allowedTools !== null) {
|
|
631
731
|
tools = tools.filter((t) => allowedTools.includes(t.name));
|
|
632
|
-
|
|
732
|
+
logger2.debug(`[getAvailableTools] After allowedTools filter: ${tools.length} tools`, {
|
|
633
733
|
toolNames: tools.map((t) => t.name)
|
|
634
734
|
});
|
|
635
735
|
}
|
|
636
736
|
if (deniedTools?.length) {
|
|
637
737
|
tools = tools.filter((t) => !deniedTools.includes(t.name));
|
|
638
|
-
|
|
738
|
+
logger2.debug(`[getAvailableTools] After deniedTools filter: ${tools.length} tools`, {
|
|
639
739
|
toolNames: tools.map((t) => t.name)
|
|
640
740
|
});
|
|
641
741
|
}
|
|
642
742
|
if (context?.extraTools?.length) {
|
|
643
743
|
const filteredExtraTools = filterToolsByAgent(context.extraTools, agent);
|
|
644
744
|
tools = [...tools, ...filteredExtraTools];
|
|
645
|
-
|
|
745
|
+
logger2.debug(`[getAvailableTools] After extraTools (filtered): ${tools.length} tools`, {
|
|
646
746
|
extraToolNames: filteredExtraTools.map((t) => t.name)
|
|
647
747
|
});
|
|
648
748
|
}
|
|
649
|
-
|
|
749
|
+
logger2.debug(`[getAvailableTools] Final tools: ${tools.length}`, {
|
|
650
750
|
toolNames: tools.map((t) => t.name)
|
|
651
751
|
});
|
|
652
752
|
return tools;
|
|
@@ -672,7 +772,7 @@ class AgentComponent extends BaseComponent {
|
|
|
672
772
|
}
|
|
673
773
|
flushPendingFakeUserMessage(hookCtx, pendingMsg, iter) {
|
|
674
774
|
this.pushMessage(hookCtx, pendingMsg);
|
|
675
|
-
|
|
775
|
+
logger2.debug(`[ReAct] Meta-protocol: flushed user message AFTER all tool-results (iter=${iter})`);
|
|
676
776
|
}
|
|
677
777
|
async _run(agentName, query, context) {
|
|
678
778
|
await this.refreshDependencies();
|
|
@@ -682,7 +782,7 @@ class AgentComponent extends BaseComponent {
|
|
|
682
782
|
}
|
|
683
783
|
const runId = `${agentName}:${++this.runCounter}`;
|
|
684
784
|
const querySummary = typeof query === "string" ? query.substring(0, 100) : query.filter((p) => p.type === "text").map((p) => p.text).join(" ").substring(0, 100) || "[multimodal query]";
|
|
685
|
-
|
|
785
|
+
logger2.info(`Starting agent run: ${agentName} (runId=${runId})`, { query: querySummary });
|
|
686
786
|
agent.status = "running";
|
|
687
787
|
this.aborted.set(runId, false);
|
|
688
788
|
const abortController = new AbortController;
|
|
@@ -708,7 +808,7 @@ class AgentComponent extends BaseComponent {
|
|
|
708
808
|
resolvedSystemPrompt = resolvedSystemPrompt.replaceAll("{{memory}}", "(Memory component not available)");
|
|
709
809
|
}
|
|
710
810
|
} catch (err) {
|
|
711
|
-
|
|
811
|
+
logger2.warn(`[AgentComponent._run] Failed to replace {{memory}}: ${err}`);
|
|
712
812
|
resolvedSystemPrompt = resolvedSystemPrompt.replaceAll("{{memory}}", "(Failed to load memory)");
|
|
713
813
|
}
|
|
714
814
|
}
|
|
@@ -757,7 +857,7 @@ class AgentComponent extends BaseComponent {
|
|
|
757
857
|
historyMessageCount = hookCtx.messages.length;
|
|
758
858
|
}
|
|
759
859
|
} catch (err) {
|
|
760
|
-
|
|
860
|
+
logger2.warn(`Failed to load session history: ${err}`);
|
|
761
861
|
}
|
|
762
862
|
}
|
|
763
863
|
const parentEnvContext = getEnvContext();
|
|
@@ -813,14 +913,14 @@ class AgentComponent extends BaseComponent {
|
|
|
813
913
|
iteration++;
|
|
814
914
|
hookCtx.iteration = iteration;
|
|
815
915
|
result.iterations = iteration;
|
|
816
|
-
|
|
916
|
+
logger2.debug(`Iteration ${iteration} started`);
|
|
817
917
|
this.doomLoopCaches.set(runId, new Map);
|
|
818
918
|
hookCtx.currentToolCall = undefined;
|
|
819
919
|
hookCtx.maxIterations = agent.config.maxIterations;
|
|
820
920
|
let iterAllToolCalls = [];
|
|
821
921
|
let iterProcessedCount = 0;
|
|
822
922
|
try {
|
|
823
|
-
|
|
923
|
+
logger2.debug(`[ReAct] Iteration ${iteration} buildMessages result: ${hookCtx.messages.length} messages`);
|
|
824
924
|
await this.executePluginHooks(agent, "agent:before.llm", hookCtx);
|
|
825
925
|
if (hookCtx._stopped)
|
|
826
926
|
break;
|
|
@@ -905,7 +1005,7 @@ class AgentComponent extends BaseComponent {
|
|
|
905
1005
|
}
|
|
906
1006
|
const assistantContent = llmOutput.content?.substring(0, 80) || "(no text)";
|
|
907
1007
|
const toolCallNames = llmOutput.toolCalls?.map((tc) => tc.function?.name || tc.name).join(", ") || "none";
|
|
908
|
-
|
|
1008
|
+
logger2.debug(`[ReAct] Iteration ${iteration} Adding assistant message: text="${assistantContent}" toolCalls=[${toolCallNames}]`);
|
|
909
1009
|
this.pushMessage(hookCtx, {
|
|
910
1010
|
role: "assistant",
|
|
911
1011
|
content: assistantParts
|
|
@@ -954,7 +1054,7 @@ class AgentComponent extends BaseComponent {
|
|
|
954
1054
|
}
|
|
955
1055
|
const toolOutput = composeToolOutputForLLM(toolResult.name, toolResult.result);
|
|
956
1056
|
const toolOutputPreview = typeof toolOutput === "string" ? toolOutput.substring(0, 50) : JSON.stringify(toolOutput).substring(0, 50);
|
|
957
|
-
|
|
1057
|
+
logger2.debug(`[ReAct] Iteration ${iteration} Adding tool message: tool=${toolResult.name} output="${toolOutputPreview}..."`);
|
|
958
1058
|
this.pushMessage(hookCtx, {
|
|
959
1059
|
role: "tool",
|
|
960
1060
|
content: [{
|
|
@@ -968,7 +1068,7 @@ class AgentComponent extends BaseComponent {
|
|
|
968
1068
|
const captured = this.consumeMetaProtocolUserMessage(hookCtx);
|
|
969
1069
|
if (captured) {
|
|
970
1070
|
pendingFakeUserMessage = captured;
|
|
971
|
-
|
|
1071
|
+
logger2.debug(`[ReAct] Meta-protocol: captured user message (tool=${toolResult.name}, iter=${iteration}); will flush after loop`);
|
|
972
1072
|
}
|
|
973
1073
|
}
|
|
974
1074
|
result.toolCalls.push(hookCtx.currentToolCall);
|
|
@@ -980,7 +1080,7 @@ class AgentComponent extends BaseComponent {
|
|
|
980
1080
|
await this.executePluginHooks(agent, "agent:on.iteration", hookCtx);
|
|
981
1081
|
}
|
|
982
1082
|
} catch (error) {
|
|
983
|
-
|
|
1083
|
+
logger2.error(`Iteration ${iteration} error`, { error });
|
|
984
1084
|
hookCtx.error = error instanceof Error ? error : new Error(String(error));
|
|
985
1085
|
if (error instanceof ContextError && error.llmOutput) {
|
|
986
1086
|
const llmOutput = error.llmOutput;
|
|
@@ -1112,7 +1212,7 @@ class AgentComponent extends BaseComponent {
|
|
|
1112
1212
|
if (effectiveContext.persistSession !== false) {
|
|
1113
1213
|
await this.recordSessionMessages(effectiveContext.sessionId, newMessages);
|
|
1114
1214
|
} else {
|
|
1115
|
-
|
|
1215
|
+
logger2.debug(`Skipping session message recording (persistSession=false, sessionId=${effectiveContext.sessionId})`);
|
|
1116
1216
|
}
|
|
1117
1217
|
const reactContext = {
|
|
1118
1218
|
messages: hookCtx.messages,
|
|
@@ -1152,7 +1252,7 @@ class AgentComponent extends BaseComponent {
|
|
|
1152
1252
|
}
|
|
1153
1253
|
});
|
|
1154
1254
|
}
|
|
1155
|
-
|
|
1255
|
+
logger2.info(`Agent run completed: ${agentName}`, {
|
|
1156
1256
|
iterations: result.iterations,
|
|
1157
1257
|
hasError: !!result.error,
|
|
1158
1258
|
hookCtxMessages: hookCtx.messages.length,
|
|
@@ -1171,10 +1271,10 @@ class AgentComponent extends BaseComponent {
|
|
|
1171
1271
|
for (const [key, controller] of this.abortControllers) {
|
|
1172
1272
|
if (key.startsWith(agentName + ":")) {
|
|
1173
1273
|
controller.abort();
|
|
1174
|
-
|
|
1274
|
+
logger2.debug(`[abort] AbortController.abort() called for run: ${key}`);
|
|
1175
1275
|
}
|
|
1176
1276
|
}
|
|
1177
|
-
|
|
1277
|
+
logger2.info(`Agent aborted: ${agentName}`);
|
|
1178
1278
|
}
|
|
1179
1279
|
abortAll() {
|
|
1180
1280
|
for (const key of this.aborted.keys()) {
|
|
@@ -1182,9 +1282,9 @@ class AgentComponent extends BaseComponent {
|
|
|
1182
1282
|
}
|
|
1183
1283
|
for (const [key, controller] of this.abortControllers) {
|
|
1184
1284
|
controller.abort();
|
|
1185
|
-
|
|
1285
|
+
logger2.debug(`[abortAll] AbortController.abort() called for run: ${key}`);
|
|
1186
1286
|
}
|
|
1187
|
-
|
|
1287
|
+
logger2.info(`All agents aborted (${this.abortControllers.size} runs)`);
|
|
1188
1288
|
}
|
|
1189
1289
|
async _buildAdditionInfo(ctx) {
|
|
1190
1290
|
let additionInfo = ctx.context?.additionInfo || "";
|
|
@@ -1217,11 +1317,11 @@ ${additionInfo}`
|
|
|
1217
1317
|
return messages;
|
|
1218
1318
|
}
|
|
1219
1319
|
async invokeLLM(ctx) {
|
|
1220
|
-
|
|
1320
|
+
logger2.debug("[invokeLLM] Starting LLM invocation");
|
|
1221
1321
|
if (this.llmComponent?.invoke) {
|
|
1222
1322
|
const messages = await this.buildMessages(ctx);
|
|
1223
1323
|
const convertedMessages = messages.map(toLLMMessage);
|
|
1224
|
-
|
|
1324
|
+
logger2.debug(`[invokeLLM] Calling LLMComponent.invoke with ${convertedMessages.length} messages`);
|
|
1225
1325
|
try {
|
|
1226
1326
|
const llmPromise = this.llmComponent.invoke({
|
|
1227
1327
|
messages: convertedMessages,
|
|
@@ -1240,7 +1340,7 @@ ${additionInfo}`
|
|
|
1240
1340
|
...ctx.context.toolChoice ? { toolChoice: ctx.context.toolChoice } : {}
|
|
1241
1341
|
});
|
|
1242
1342
|
const result = await withTimeout(llmPromise, 300000, "LLM invocation timeout after 300s");
|
|
1243
|
-
|
|
1343
|
+
logger2.debug("[invokeLLM] LLMComponent.invoke returned successfully");
|
|
1244
1344
|
return {
|
|
1245
1345
|
content: result.output?.content || "",
|
|
1246
1346
|
reasoning: result.output?.reasoning,
|
|
@@ -1256,11 +1356,11 @@ ${additionInfo}`
|
|
|
1256
1356
|
finishReason: result.output?.finishReason
|
|
1257
1357
|
};
|
|
1258
1358
|
} catch (error) {
|
|
1259
|
-
|
|
1359
|
+
logger2.error("[invokeLLM] LLMComponent.invoke threw an error:", error);
|
|
1260
1360
|
throw error;
|
|
1261
1361
|
}
|
|
1262
1362
|
}
|
|
1263
|
-
|
|
1363
|
+
logger2.warn("[invokeLLM] No LLMComponent available, using mock");
|
|
1264
1364
|
return {
|
|
1265
1365
|
content: "Mock response: Hello!",
|
|
1266
1366
|
finishReason: "stop"
|
|
@@ -1269,8 +1369,8 @@ ${additionInfo}`
|
|
|
1269
1369
|
async executeTool(ctx) {
|
|
1270
1370
|
const toolCall = ctx.currentToolCall;
|
|
1271
1371
|
const toolName = toolCall.function?.name || toolCall.name || "unknown";
|
|
1272
|
-
|
|
1273
|
-
|
|
1372
|
+
logger2.debug(`[executeTool] Looking for tool: "${toolName}"`);
|
|
1373
|
+
logger2.debug(`[executeTool] Available tools: [${ctx.tools.map((t) => t.name).join(", ")}]`);
|
|
1274
1374
|
const tool = ctx.tools.find((t) => t.name === toolName);
|
|
1275
1375
|
if (!tool) {
|
|
1276
1376
|
this.pushEnvEvent({
|
|
@@ -1316,7 +1416,7 @@ ${additionInfo}`
|
|
|
1316
1416
|
const isLongRunningTool = toolName === "delegate_task" || toolName === "stop_task" || toolName === "bash" || toolName === "workflow_run" || toolName === "run-workflow";
|
|
1317
1417
|
const isExtraTool = this.toolComponent?.getTool ? !this.toolComponent.getTool(toolName) : false;
|
|
1318
1418
|
if (isExtraTool) {
|
|
1319
|
-
|
|
1419
|
+
logger2.debug(`[executeTool] Tool "${toolName}" is an extraTool, executing directly`);
|
|
1320
1420
|
const toolPromise = tool.execute(toolCall.arguments, toolContext);
|
|
1321
1421
|
if (isLongRunningTool) {
|
|
1322
1422
|
result = await toolPromise;
|
|
@@ -1332,7 +1432,7 @@ ${additionInfo}`
|
|
|
1332
1432
|
result = await withTimeout(toolPromise, 120000, `Tool '${toolName}' execution timeout after 120s`);
|
|
1333
1433
|
}
|
|
1334
1434
|
} else {
|
|
1335
|
-
|
|
1435
|
+
logger2.debug(`[executeTool] No ToolComponent available, executing tool directly`);
|
|
1336
1436
|
const toolPromise = tool.execute(toolCall.arguments, toolContext);
|
|
1337
1437
|
if (isLongRunningTool) {
|
|
1338
1438
|
result = await toolPromise;
|
|
@@ -1399,14 +1499,14 @@ ${additionInfo}`
|
|
|
1399
1499
|
if (!result.continue) {
|
|
1400
1500
|
ctx._stopped = true;
|
|
1401
1501
|
ctx._stopReason = `Plugin ${plugin.name} stopped execution`;
|
|
1402
|
-
|
|
1502
|
+
logger2.info(`Hook ${point} stopped by plugin ${plugin.name}`);
|
|
1403
1503
|
break;
|
|
1404
1504
|
}
|
|
1405
1505
|
if (result.action) {
|
|
1406
1506
|
await this.handleHookAction(result.action, ctx);
|
|
1407
1507
|
}
|
|
1408
1508
|
} catch (error) {
|
|
1409
|
-
|
|
1509
|
+
logger2.error(`Hook ${point} error in plugin ${plugin.name}`, { error });
|
|
1410
1510
|
ctx._errors = ctx._errors || [];
|
|
1411
1511
|
ctx._errors.push({
|
|
1412
1512
|
plugin: plugin.name,
|
|
@@ -1438,7 +1538,7 @@ ${additionInfo}`
|
|
|
1438
1538
|
}
|
|
1439
1539
|
}
|
|
1440
1540
|
notifyMessageAdded(message) {
|
|
1441
|
-
|
|
1541
|
+
logger2.debug(`Message added: ${message.role}`);
|
|
1442
1542
|
}
|
|
1443
1543
|
finalizeResult(result, ctx) {
|
|
1444
1544
|
return {
|
|
@@ -1455,7 +1555,7 @@ ${additionInfo}`
|
|
|
1455
1555
|
try {
|
|
1456
1556
|
const sessionComponent = this.env.getComponent("session");
|
|
1457
1557
|
if (!sessionComponent) {
|
|
1458
|
-
|
|
1558
|
+
logger2.warn("SessionComponent not found, skipping session recording");
|
|
1459
1559
|
return;
|
|
1460
1560
|
}
|
|
1461
1561
|
filtered = [];
|
|
@@ -1480,9 +1580,9 @@ ${additionInfo}`
|
|
|
1480
1580
|
} catch (err) {
|
|
1481
1581
|
const kind = err && typeof err === "object" && "kind" in err ? err.kind : undefined;
|
|
1482
1582
|
if (kind === "lock_exhausted") {
|
|
1483
|
-
|
|
1583
|
+
logger2.error(`[recordSessionMessages] DROPPED ${filtered?.length ?? "?"} message(s) — SQLITE_BUSY retry exhausted after ${err.attempts ?? "?"} attempts. Session ${sessionId} is now inconsistent with LLM context. Original: ${err}`);
|
|
1484
1584
|
} else {
|
|
1485
|
-
|
|
1585
|
+
logger2.error(`[recordSessionMessages] Failed to record session messages for ${sessionId}: ${err}`);
|
|
1486
1586
|
}
|
|
1487
1587
|
}
|
|
1488
1588
|
}
|
|
@@ -1513,7 +1613,7 @@ ${additionInfo}`
|
|
|
1513
1613
|
};
|
|
1514
1614
|
this.env?.pushEnvEvent(fullEvent);
|
|
1515
1615
|
} catch (err) {
|
|
1516
|
-
|
|
1616
|
+
logger2.warn(`[pushEnvEvent] Failed to push event: ${err}`);
|
|
1517
1617
|
}
|
|
1518
1618
|
}
|
|
1519
1619
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createHook
|
|
3
|
-
} from "./roy-agent-core-
|
|
3
|
+
} from "./roy-agent-core-5ts23mx0.js";
|
|
4
4
|
import {
|
|
5
5
|
HookManager
|
|
6
|
-
} from "./roy-agent-core-
|
|
6
|
+
} from "./roy-agent-core-j29yg06n.js";
|
|
7
7
|
|
|
8
8
|
// src/env/component.ts
|
|
9
9
|
class BaseComponent {
|
|
@@ -3,12 +3,12 @@ import {
|
|
|
3
3
|
hasDecoratorNodes,
|
|
4
4
|
init_node_registry_helper,
|
|
5
5
|
registerDecoratorNodeType
|
|
6
|
-
} from "./roy-agent-core-
|
|
6
|
+
} from "./roy-agent-core-3e0w0ekw.js";
|
|
7
7
|
import"./roy-agent-core-ddwa0n6h.js";
|
|
8
8
|
import"./roy-agent-core-1ce3fqrk.js";
|
|
9
|
-
import"./roy-agent-core-
|
|
10
|
-
import"./roy-agent-core-
|
|
11
|
-
import"./roy-agent-core-
|
|
9
|
+
import"./roy-agent-core-gb7pm9c0.js";
|
|
10
|
+
import"./roy-agent-core-kaq037np.js";
|
|
11
|
+
import"./roy-agent-core-1khp1m0r.js";
|
|
12
12
|
import"./roy-agent-core-4an1p9a1.js";
|
|
13
13
|
import"./roy-agent-core-fs0mn2jk.js";
|
|
14
14
|
init_node_registry_helper();
|