@ai-setting/roy-agent-core 1.7.13 → 1.7.15

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 (93) hide show
  1. package/dist/config/index.js +8 -9
  2. package/dist/env/agent/index.js +14 -15
  3. package/dist/env/commands/index.js +8 -9
  4. package/dist/env/context/index.js +4 -5
  5. package/dist/env/debug/index.js +8 -9
  6. package/dist/env/event-source/index.js +13 -14
  7. package/dist/env/hook/index.js +6 -7
  8. package/dist/env/index.js +38 -39
  9. package/dist/env/llm/index.js +9 -10
  10. package/dist/env/log-trace/index.js +16 -18
  11. package/dist/env/mcp/index.js +9 -10
  12. package/dist/env/mcp/tool/index.js +2 -3
  13. package/dist/env/memory/index.js +9 -10
  14. package/dist/env/memory/plugin/index.js +2 -3
  15. package/dist/env/plugin/index.js +8 -9
  16. package/dist/env/prompt/index.js +8 -9
  17. package/dist/env/session/index.js +11 -12
  18. package/dist/env/session/storage/index.js +4 -5
  19. package/dist/env/skill/index.js +8 -9
  20. package/dist/env/task/delegate/index.js +8 -9
  21. package/dist/env/task/index.js +13 -14
  22. package/dist/env/task/plugins/index.js +8 -9
  23. package/dist/env/task/storage/index.js +3 -4
  24. package/dist/env/task/tools/index.js +4 -5
  25. package/dist/env/tool/built-in/index.js +4 -5
  26. package/dist/env/tool/index.js +11 -12
  27. package/dist/env/workflow/engine/index.js +10 -11
  28. package/dist/env/workflow/index.js +21 -22
  29. package/dist/env/workflow/nodes/index.js +3 -4
  30. package/dist/env/workflow/service/index.js +3 -4
  31. package/dist/env/workflow/storage/index.js +4 -5
  32. package/dist/env/workflow/tools/index.js +15 -16
  33. package/dist/env/workflow/utils/index.js +5 -6
  34. package/dist/index.js +55 -57
  35. package/dist/shared/@ai-setting/{roy-agent-core-6qvgvbg1.js → roy-agent-core-0hzymk2b.js} +6 -7
  36. package/dist/shared/@ai-setting/{roy-agent-core-pz2n121t.js → roy-agent-core-0nz53t5v.js} +7 -9
  37. package/dist/shared/@ai-setting/{roy-agent-core-h9230kg6.js → roy-agent-core-0ra1gtn9.js} +5 -5
  38. package/dist/shared/@ai-setting/{roy-agent-core-w8rv08d3.js → roy-agent-core-1df0grva.js} +1 -1
  39. package/dist/shared/@ai-setting/{roy-agent-core-6m2gh57e.js → roy-agent-core-1h6h6h37.js} +1 -1
  40. package/dist/shared/@ai-setting/{roy-agent-core-7xek618f.js → roy-agent-core-1qt5x67p.js} +2 -2
  41. package/dist/shared/@ai-setting/{roy-agent-core-b64s2vk9.js → roy-agent-core-1sxybyqq.js} +2 -2
  42. package/dist/shared/@ai-setting/{roy-agent-core-wgp3q62x.js → roy-agent-core-1y4hr9v9.js} +3 -3
  43. package/dist/shared/@ai-setting/{roy-agent-core-rfwshpd0.js → roy-agent-core-2ah7204k.js} +1 -1
  44. package/dist/shared/@ai-setting/{roy-agent-core-gb7pm9c0.js → roy-agent-core-38rtrpk3.js} +3 -5
  45. package/dist/shared/@ai-setting/{roy-agent-core-62mvbqmj.js → roy-agent-core-3qm3ps0w.js} +3 -4
  46. package/dist/shared/@ai-setting/{roy-agent-core-t9h4np6m.js → roy-agent-core-4r2e3b8a.js} +1 -1
  47. package/dist/shared/@ai-setting/{roy-agent-core-v13dq3nc.js → roy-agent-core-4rg92cwq.js} +4 -4
  48. package/dist/shared/@ai-setting/{roy-agent-core-32226m35.js → roy-agent-core-62mfe44h.js} +6 -6
  49. package/dist/shared/@ai-setting/{roy-agent-core-nxqk5smq.js → roy-agent-core-6jafpa30.js} +5 -5
  50. package/dist/shared/@ai-setting/{roy-agent-core-hncxk9d1.js → roy-agent-core-6rebk607.js} +1 -1
  51. package/dist/shared/@ai-setting/{roy-agent-core-8fcjcx67.js → roy-agent-core-77cpyf03.js} +2 -2
  52. package/dist/shared/@ai-setting/{roy-agent-core-xrr7t0qc.js → roy-agent-core-7p6rny5m.js} +2 -2
  53. package/dist/shared/@ai-setting/{roy-agent-core-qe3m3hec.js → roy-agent-core-7x8v3wbn.js} +1 -1
  54. package/dist/shared/@ai-setting/{roy-agent-core-z2w7wtqd.js → roy-agent-core-89zsa89z.js} +4 -5
  55. package/dist/shared/@ai-setting/{roy-agent-core-7zy1mpmw.js → roy-agent-core-91rzfw8d.js} +8 -10
  56. package/dist/shared/@ai-setting/{roy-agent-core-br7dmedr.js → roy-agent-core-9sz7hnbf.js} +1 -1
  57. package/dist/shared/@ai-setting/{roy-agent-core-4ggqsnbg.js → roy-agent-core-axkxd7jn.js} +14 -14
  58. package/dist/shared/@ai-setting/{roy-agent-core-ec4djnzd.js → roy-agent-core-ch3gg6r0.js} +3 -3
  59. package/dist/shared/@ai-setting/{roy-agent-core-mgp3284f.js → roy-agent-core-d12nwxfx.js} +4 -6
  60. package/dist/shared/@ai-setting/{roy-agent-core-1khp1m0r.js → roy-agent-core-e6dahpp2.js} +313 -8
  61. package/dist/shared/@ai-setting/{roy-agent-core-j29yg06n.js → roy-agent-core-g772q3gf.js} +2 -2
  62. package/dist/shared/@ai-setting/{roy-agent-core-4m4awz0m.js → roy-agent-core-g7cht2pw.js} +8 -8
  63. package/dist/shared/@ai-setting/{roy-agent-core-zqeq8m9z.js → roy-agent-core-gjnhkemk.js} +3 -3
  64. package/dist/shared/@ai-setting/roy-agent-core-gtymhfda.js +10 -0
  65. package/dist/shared/@ai-setting/{roy-agent-core-zhv8efqh.js → roy-agent-core-h4h6n9vk.js} +8 -8
  66. package/dist/shared/@ai-setting/{roy-agent-core-3ep1dxf1.js → roy-agent-core-h76sw3ar.js} +2 -2
  67. package/dist/shared/@ai-setting/{roy-agent-core-hmqmznjc.js → roy-agent-core-hfpbq1qy.js} +1 -1
  68. package/dist/shared/@ai-setting/{roy-agent-core-k4byknt1.js → roy-agent-core-htwb9yj6.js} +2 -2
  69. package/dist/shared/@ai-setting/{roy-agent-core-t3yqzgse.js → roy-agent-core-jbc1t62x.js} +1 -1
  70. package/dist/shared/@ai-setting/{roy-agent-core-0v74marc.js → roy-agent-core-jdvgzf2y.js} +1 -1
  71. package/dist/shared/@ai-setting/{roy-agent-core-d11714ee.js → roy-agent-core-kbf31f21.js} +5 -5
  72. package/dist/shared/@ai-setting/{roy-agent-core-6re7eg4w.js → roy-agent-core-kj93n7pb.js} +2 -2
  73. package/dist/shared/@ai-setting/{roy-agent-core-zcx8nf4a.js → roy-agent-core-kp57kbzd.js} +1 -1
  74. package/dist/shared/@ai-setting/{roy-agent-core-h7ak839w.js → roy-agent-core-m2pxg5d8.js} +1 -1
  75. package/dist/shared/@ai-setting/{roy-agent-core-pde8hkq4.js → roy-agent-core-m725wp1x.js} +2 -2
  76. package/dist/shared/@ai-setting/{roy-agent-core-2xb3f3ye.js → roy-agent-core-md5wg3ns.js} +1 -1
  77. package/dist/shared/@ai-setting/{roy-agent-core-dxfd6p1c.js → roy-agent-core-ncvqfx7m.js} +1 -1
  78. package/dist/shared/@ai-setting/{roy-agent-core-x0yztmm6.js → roy-agent-core-p06rm1xh.js} +2 -2
  79. package/dist/shared/@ai-setting/{roy-agent-core-sfwt66pv.js → roy-agent-core-pqb1cx3t.js} +2 -2
  80. package/dist/shared/@ai-setting/{roy-agent-core-90wp1rgb.js → roy-agent-core-pz8jvvtn.js} +4 -5
  81. package/dist/shared/@ai-setting/{roy-agent-core-q6mq7gmc.js → roy-agent-core-qmbd0vx2.js} +11 -11
  82. package/dist/shared/@ai-setting/{roy-agent-core-rs5tp44j.js → roy-agent-core-r5d3f3nb.js} +4 -4
  83. package/dist/shared/@ai-setting/{roy-agent-core-71wde8ce.js → roy-agent-core-rsej8ed5.js} +6 -6
  84. package/dist/shared/@ai-setting/{roy-agent-core-5ts23mx0.js → roy-agent-core-sf4bjgwz.js} +1 -1
  85. package/dist/shared/@ai-setting/{roy-agent-core-mvs5sen6.js → roy-agent-core-sh7bz68r.js} +1 -1
  86. package/dist/shared/@ai-setting/{roy-agent-core-2yt4jmzv.js → roy-agent-core-sh94bwdf.js} +7 -7
  87. package/dist/shared/@ai-setting/{roy-agent-core-7cxdkcrz.js → roy-agent-core-sxqhny9v.js} +4 -4
  88. package/dist/shared/@ai-setting/{roy-agent-core-wrjm9etv.js → roy-agent-core-tp0thedj.js} +6 -6
  89. package/dist/shared/@ai-setting/{roy-agent-core-qpt5fa8h.js → roy-agent-core-tzsmkk5w.js} +2 -2
  90. package/dist/utils/temp-file-manager/index.js +2 -3
  91. package/package.json +2 -2
  92. package/dist/shared/@ai-setting/roy-agent-core-4k8tv5q5.js +0 -11
  93. package/dist/shared/@ai-setting/roy-agent-core-kaq037np.js +0 -299
@@ -1,35 +1,33 @@
1
1
  import {
2
2
  TaskTagPlugin,
3
3
  createLarkCliTaskNotifyHook
4
- } from "./roy-agent-core-zhv8efqh.js";
4
+ } from "./roy-agent-core-h4h6n9vk.js";
5
5
  import {
6
6
  envKeyToConfigKey
7
7
  } from "./roy-agent-core-7hh0brvs.js";
8
8
  import {
9
9
  BaseComponent
10
- } from "./roy-agent-core-pde8hkq4.js";
10
+ } from "./roy-agent-core-m725wp1x.js";
11
11
  import {
12
12
  globalHookManager,
13
13
  init_global_hook_manager
14
- } from "./roy-agent-core-j29yg06n.js";
14
+ } from "./roy-agent-core-g772q3gf.js";
15
15
  import {
16
16
  init_context
17
- } from "./roy-agent-core-h7ak839w.js";
17
+ } from "./roy-agent-core-m2pxg5d8.js";
18
18
  import {
19
19
  createEnvContext,
20
20
  runWithEnvContext
21
- } from "./roy-agent-core-xrr7t0qc.js";
21
+ } from "./roy-agent-core-7p6rny5m.js";
22
22
  import {
23
23
  TracedAs,
24
24
  init_decorator
25
- } from "./roy-agent-core-gb7pm9c0.js";
25
+ } from "./roy-agent-core-38rtrpk3.js";
26
26
  import {
27
27
  createLogger,
28
+ getTracerProvider,
28
29
  init_logger
29
- } from "./roy-agent-core-kaq037np.js";
30
- import {
31
- getTracerProvider
32
- } from "./roy-agent-core-1khp1m0r.js";
30
+ } from "./roy-agent-core-e6dahpp2.js";
33
31
  import {
34
32
  __legacyDecorateClassTS,
35
33
  __require
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createLogger,
3
3
  init_logger
4
- } from "./roy-agent-core-kaq037np.js";
4
+ } from "./roy-agent-core-e6dahpp2.js";
5
5
 
6
6
  // src/utils/temp-file-manager/index.ts
7
7
  init_logger();
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  exports_node_registry_helper,
3
3
  init_node_registry_helper
4
- } from "./roy-agent-core-7xek618f.js";
4
+ } from "./roy-agent-core-1qt5x67p.js";
5
5
  import {
6
6
  askUserTool,
7
7
  createRunWorkflowTool,
@@ -13,22 +13,22 @@ import {
13
13
  createWorkflowSearchTool,
14
14
  createWorkflowTagListTool,
15
15
  createWorkflowValidateTool
16
- } from "./roy-agent-core-nxqk5smq.js";
16
+ } from "./roy-agent-core-6jafpa30.js";
17
17
  import {
18
18
  WorkflowService
19
- } from "./roy-agent-core-8fcjcx67.js";
19
+ } from "./roy-agent-core-77cpyf03.js";
20
20
  import {
21
21
  WorkflowEngine,
22
22
  exports_engine,
23
23
  init_engine
24
- } from "./roy-agent-core-wrjm9etv.js";
24
+ } from "./roy-agent-core-tp0thedj.js";
25
25
  import {
26
26
  BaseComponent
27
- } from "./roy-agent-core-pde8hkq4.js";
27
+ } from "./roy-agent-core-m725wp1x.js";
28
28
  import {
29
29
  createLogger,
30
30
  init_logger
31
- } from "./roy-agent-core-kaq037np.js";
31
+ } from "./roy-agent-core-e6dahpp2.js";
32
32
  import {
33
33
  __require,
34
34
  __toCommonJS
@@ -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-62mvbqmj.js");
107
+ const { registerDecoratorNodeType: registerDecoratorNodeType2 } = await import("./roy-agent-core-3qm3ps0w.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-62mvbqmj.js");
137
+ const { registerDecoratorNodeType: registerDecoratorNodeType2 } = await import("./roy-agent-core-3qm3ps0w.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-6qvgvbg1.js");
144
+ const { AgentComponentAdapter } = await import("./roy-agent-core-0hzymk2b.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-z2w7wtqd.js");
166
+ const { closeDatabase } = await import("./roy-agent-core-89zsa89z.js");
167
167
  closeDatabase();
168
168
  componentLogger.info("[WorkflowComponent] SQLite database closed");
169
169
  } catch (error) {
@@ -241,9 +241,9 @@ class WorkflowComponent extends BaseComponent {
241
241
  }
242
242
  async initSqliteService() {
243
243
  try {
244
- const { getDatabase, initializeTables } = await import("./roy-agent-core-z2w7wtqd.js");
245
- const { WorkflowRepository } = await import("./roy-agent-core-90wp1rgb.js");
246
- const { TagRepository } = await import("./roy-agent-core-4k8tv5q5.js");
244
+ const { getDatabase, initializeTables } = await import("./roy-agent-core-89zsa89z.js");
245
+ const { WorkflowRepository } = await import("./roy-agent-core-pz8jvvtn.js");
246
+ const { TagRepository } = await import("./roy-agent-core-gtymhfda.js");
247
247
  const db = getDatabase();
248
248
  initializeTables();
249
249
  const workflowRepository = new WorkflowRepository(db);
@@ -309,7 +309,7 @@ class WorkflowComponent extends BaseComponent {
309
309
  this.workflowService = null;
310
310
  this.nodeRegistry = null;
311
311
  try {
312
- const { closeDatabase } = await import("./roy-agent-core-z2w7wtqd.js");
312
+ const { closeDatabase } = await import("./roy-agent-core-89zsa89z.js");
313
313
  closeDatabase();
314
314
  } catch {}
315
315
  this._status = "stopped";
@@ -9,16 +9,16 @@ import {
9
9
  import {
10
10
  globalHookManager,
11
11
  init_global_hook_manager
12
- } from "./roy-agent-core-j29yg06n.js";
12
+ } from "./roy-agent-core-g772q3gf.js";
13
13
  import {
14
14
  TracedAs,
15
15
  init_decorator,
16
16
  wrapFunction
17
- } from "./roy-agent-core-gb7pm9c0.js";
17
+ } from "./roy-agent-core-38rtrpk3.js";
18
18
  import {
19
19
  createLogger,
20
20
  init_logger
21
- } from "./roy-agent-core-kaq037np.js";
21
+ } from "./roy-agent-core-e6dahpp2.js";
22
22
  import {
23
23
  __esm,
24
24
  __legacyDecorateClassTS
@@ -7,21 +7,19 @@ import {
7
7
  import {
8
8
  getCurrentProcessRegistry,
9
9
  killProcessTree
10
- } from "./roy-agent-core-mvs5sen6.js";
10
+ } from "./roy-agent-core-sh7bz68r.js";
11
11
  import {
12
12
  init_decorator,
13
13
  wrapFunction
14
- } from "./roy-agent-core-gb7pm9c0.js";
14
+ } from "./roy-agent-core-38rtrpk3.js";
15
15
  import {
16
16
  createLogger,
17
- init_logger
18
- } from "./roy-agent-core-kaq037np.js";
19
- import {
20
17
  exports_tracer_provider,
18
+ init_logger,
21
19
  init_propagation,
22
20
  init_tracer_provider,
23
21
  propagation
24
- } from "./roy-agent-core-1khp1m0r.js";
22
+ } from "./roy-agent-core-e6dahpp2.js";
25
23
  import {
26
24
  __toCommonJS
27
25
  } from "./roy-agent-core-fs0mn2jk.js";
@@ -88,6 +88,295 @@ var init_types = __esm(() => {
88
88
  })(SpanStatus ||= {});
89
89
  });
90
90
 
91
+ // src/env/log-trace/logger.ts
92
+ import { appendFileSync, existsSync, mkdirSync } from "fs";
93
+ import { join } from "path";
94
+ function simplifyFilePath(fullPath) {
95
+ let path = fullPath.replace(/\\/g, "/");
96
+ const bunfsMatch = path.match(/\/\$bunfs\/root\/(.+)$/);
97
+ if (bunfsMatch) {
98
+ const virtualPath = bunfsMatch[1];
99
+ const packagesMatch = virtualPath.match(/(packages\/[^/]+\/src\/[^/]+\/.+)$/);
100
+ if (packagesMatch) {
101
+ return packagesMatch[1];
102
+ }
103
+ return virtualPath;
104
+ }
105
+ const fileProtocolMatch = path.match(/@roy-agent\+core@file\+([^/]+)\/node_modules\/@roy-agent\/core\/(.+)$/);
106
+ if (fileProtocolMatch) {
107
+ const rootPkg = fileProtocolMatch[1].replace(/\+/g, "/");
108
+ const remaining = fileProtocolMatch[2];
109
+ const prefix = rootPkg;
110
+ const suffix = remaining.startsWith("src/") ? remaining : `src/${remaining}`;
111
+ return `${prefix}/${suffix}`;
112
+ }
113
+ const packagesRootMatch = path.match(/(packages\/[^/]+\/src\/[^/]+\/.+)$/);
114
+ if (packagesRootMatch) {
115
+ return packagesRootMatch[1];
116
+ }
117
+ const rootMarkers = ["packages/core/src", "packages/core", "packages"];
118
+ for (const marker of rootMarkers) {
119
+ const idx = path.indexOf(marker);
120
+ if (idx !== -1) {
121
+ return path.substring(idx);
122
+ }
123
+ }
124
+ return path;
125
+ }
126
+ function getDefaultLogDir() {
127
+ const home = process.env.HOME || process.env.USERPROFILE || "/tmp";
128
+ try {
129
+ const xdg = __require("xdg-basedir");
130
+ if (xdg.xdgData) {
131
+ return join(xdg.xdgData, "roy-agent", "logs");
132
+ }
133
+ } catch {}
134
+ return join(home, ".local", "share", "roy-agent", "logs");
135
+ }
136
+ function isQuietMode() {
137
+ return quietMode;
138
+ }
139
+ function setQuietMode(enabled) {
140
+ quietMode = enabled;
141
+ }
142
+ function setConfigComponent(component) {
143
+ configComponentInstance = component;
144
+ }
145
+ function getLogLevel() {
146
+ if (configComponentInstance) {
147
+ const level = configComponentInstance.get("log_trace.logging.level");
148
+ if (level && ["debug", "info", "warn", "error"].includes(level)) {
149
+ return level;
150
+ }
151
+ }
152
+ const envLevel = process.env.LOG_LEVEL;
153
+ if (envLevel && ["debug", "info", "warn", "error"].includes(envLevel)) {
154
+ return envLevel;
155
+ }
156
+ return "info";
157
+ }
158
+ function getCategoryLogLevel(category) {
159
+ if (configComponentInstance) {
160
+ const levels = configComponentInstance.get("log_trace.logging.levels");
161
+ if (levels && typeof levels === "object") {
162
+ const categoryLevel = levels[category];
163
+ if (categoryLevel && ["debug", "info", "warn", "error"].includes(categoryLevel)) {
164
+ return categoryLevel;
165
+ }
166
+ }
167
+ const directLevel = configComponentInstance.get(`log_trace.logging.levels.${category}`);
168
+ if (directLevel && ["debug", "info", "warn", "error"].includes(directLevel)) {
169
+ return directLevel;
170
+ }
171
+ }
172
+ const envKey = `LOG_LEVEL_${category.toUpperCase().replace(/:/g, "_")}`;
173
+ const envLevel = process.env[envKey];
174
+ if (envLevel && ["debug", "info", "warn", "error"].includes(envLevel)) {
175
+ return envLevel;
176
+ }
177
+ return getLogLevel();
178
+ }
179
+ function isAbsolutePath(path) {
180
+ if (path.startsWith("/")) {
181
+ return true;
182
+ }
183
+ if (/^[a-zA-Z]:[/\\]/.test(path)) {
184
+ return true;
185
+ }
186
+ return false;
187
+ }
188
+ function expandHomeDir(path) {
189
+ if (path.startsWith("~")) {
190
+ const home = process.env.HOME || process.env.USERPROFILE || "/tmp";
191
+ return join(home, path.slice(1));
192
+ }
193
+ return path;
194
+ }
195
+ function getLogFile() {
196
+ if (configComponentInstance) {
197
+ const file = configComponentInstance.get("log-trace.logging.file");
198
+ if (file) {
199
+ return file;
200
+ }
201
+ }
202
+ return "app.log";
203
+ }
204
+ function getLogDir() {
205
+ if (configComponentInstance) {
206
+ const dir = configComponentInstance.get("log-trace.logging.dir");
207
+ if (dir) {
208
+ return dir;
209
+ }
210
+ }
211
+ return getDefaultLogDir();
212
+ }
213
+ function getMaxOutput() {
214
+ if (configComponentInstance) {
215
+ const maxOutput = configComponentInstance.get("log-trace.logging.maxOutput");
216
+ if (typeof maxOutput === "number") {
217
+ return maxOutput;
218
+ }
219
+ }
220
+ return;
221
+ }
222
+ function setLogDirOverride(dir) {
223
+ logDirOverride = dir;
224
+ }
225
+ function getLogDirOverride() {
226
+ return logDirOverride;
227
+ }
228
+
229
+ class Logger {
230
+ prefix;
231
+ constructor(prefix) {
232
+ this.prefix = prefix;
233
+ }
234
+ shouldLog(level) {
235
+ const categoryLevel = getCategoryLogLevel(this.prefix);
236
+ return levelPriority[level] >= levelPriority[categoryLevel];
237
+ }
238
+ ensureLogDirectory(dir) {
239
+ if (!existsSync(dir)) {
240
+ try {
241
+ mkdirSync(dir, { recursive: true });
242
+ } catch (err) {
243
+ console.error("[Logger] Failed to create log directory:", dir, err);
244
+ }
245
+ }
246
+ }
247
+ getCallerLocation() {
248
+ const originalLimit = Error.stackTraceLimit;
249
+ Error.stackTraceLimit = 10;
250
+ const err = new Error;
251
+ Error.captureStackTrace(err, this.formatMessage);
252
+ const stack = err.stack?.split(`
253
+ `) || [];
254
+ Error.stackTraceLimit = originalLimit;
255
+ for (let i = 1;i < stack.length; i++) {
256
+ const line = stack[i];
257
+ if (line.includes("at ") && !line.includes("logger.ts") && !line.includes("formatMessage")) {
258
+ const match = line.match(/at\s+.+\s+\((.+):(\d+):\d+\)/) || line.match(/at\s+(.+):(\d+):\d+/);
259
+ if (match) {
260
+ const filePath = match[1];
261
+ const relativePath = this.getRelativePath(filePath);
262
+ return {
263
+ file: relativePath,
264
+ line: parseInt(match[2], 10)
265
+ };
266
+ }
267
+ }
268
+ }
269
+ return null;
270
+ }
271
+ getRelativePath(fullPath) {
272
+ return simplifyFilePath(fullPath);
273
+ }
274
+ formatMessage(level, message, data) {
275
+ const now = new Date;
276
+ const timestamp = now.toLocaleString("zh-CN", {
277
+ timeZone: "Asia/Shanghai",
278
+ year: "numeric",
279
+ month: "2-digit",
280
+ day: "2-digit",
281
+ hour: "2-digit",
282
+ minute: "2-digit",
283
+ second: "2-digit",
284
+ hour12: false
285
+ }).replace(/\//g, "-") + "." + String(now.getMilliseconds()).padStart(3, "0");
286
+ const prefix = this.prefix ? `[${this.prefix}]` : "";
287
+ let traceIdStr = "";
288
+ try {
289
+ const provider = getTracerProvider();
290
+ const tracer = provider.getTracer("roy-tracer");
291
+ const context = tracer.getCurrentContext();
292
+ if (context?.traceId) {
293
+ traceIdStr = `[traceId=${context.traceId}]`;
294
+ }
295
+ } catch {}
296
+ let locationStr = "";
297
+ if (data && typeof data === "object" && "callerLocation" in data) {
298
+ const logData = data;
299
+ locationStr = logData.callerLocation ? ` [${logData.callerLocation}]` : "";
300
+ const { callerLocation: _callerLocation, ...rest } = logData;
301
+ data = Object.keys(rest).length > 0 ? rest : undefined;
302
+ } else {
303
+ const location = this.getCallerLocation();
304
+ if (location) {
305
+ locationStr = ` [${location.file}:${location.line}]`;
306
+ }
307
+ }
308
+ let formatted = `${timestamp} [${level.toUpperCase()}]${traceIdStr}${locationStr}${prefix} ${message}`;
309
+ if (data !== undefined) {
310
+ if (typeof data === "object") {
311
+ formatted += " " + JSON.stringify(data).replace(/\n/g, "");
312
+ } else {
313
+ formatted += " " + String(data);
314
+ }
315
+ }
316
+ const maxOutput = getMaxOutput();
317
+ if (maxOutput && maxOutput > 0 && formatted.length > maxOutput) {
318
+ formatted = formatted.substring(0, maxOutput) + " [TRUNCATED]";
319
+ }
320
+ return formatted;
321
+ }
322
+ writeToFile(message) {
323
+ try {
324
+ const dir = getLogDir();
325
+ const filename = getLogFile();
326
+ const expandedDir = expandHomeDir(dir);
327
+ const resolvedDir = isAbsolutePath(expandedDir) ? expandedDir : join(process.cwd(), expandedDir);
328
+ this.ensureLogDirectory(resolvedDir);
329
+ const logFile = join(resolvedDir, filename);
330
+ appendFileSync(logFile, message + `
331
+ `, "utf-8");
332
+ } catch (err) {
333
+ console.error("[Logger] Failed to write to log file:", err);
334
+ }
335
+ }
336
+ log(level, message, data) {
337
+ if (!this.shouldLog(level))
338
+ return;
339
+ const formatted = this.formatMessage(level, message, data);
340
+ this.writeToFile(formatted);
341
+ if (!isQuietMode()) {
342
+ const consoleMethod = level === "error" ? console.error : level === "warn" ? console.warn : level === "info" ? console.log : console.debug;
343
+ consoleMethod(formatted);
344
+ }
345
+ }
346
+ debug(message, data) {
347
+ this.log("debug", message, data);
348
+ }
349
+ info(message, data) {
350
+ this.log("info", message, data);
351
+ }
352
+ warn(message, data) {
353
+ this.log("warn", message, data);
354
+ }
355
+ error(message, data) {
356
+ this.log("error", message, data);
357
+ }
358
+ }
359
+ function createLogger(prefix) {
360
+ if (!loggerCache.has(prefix)) {
361
+ loggerCache.set(prefix, new Logger(prefix));
362
+ }
363
+ return loggerCache.get(prefix);
364
+ }
365
+ function getLogLevels() {
366
+ return ["debug", "info", "warn", "error"];
367
+ }
368
+ var configComponentInstance = null, quietMode = false, logDirOverride, levelPriority, loggerCache;
369
+ var init_logger = __esm(() => {
370
+ init_tracer_provider();
371
+ levelPriority = {
372
+ debug: 0,
373
+ info: 1,
374
+ warn: 2,
375
+ error: 3
376
+ };
377
+ loggerCache = new Map;
378
+ });
379
+
91
380
  // src/env/log-trace/opentelemetry/tracer-provider.ts
92
381
  var exports_tracer_provider = {};
93
382
  __export(exports_tracer_provider, {
@@ -96,9 +385,24 @@ __export(exports_tracer_provider, {
96
385
  getTracerProvider: () => getTracerProvider,
97
386
  OTelTracerProvider: () => OTelTracerProvider
98
387
  });
388
+ function getOtelLogger() {
389
+ if (!_otelLogger) {
390
+ _otelLogger = createLogger("otel-tracer");
391
+ }
392
+ return _otelLogger;
393
+ }
99
394
  function isOtelTraceDebugEnabled() {
100
395
  return process.env.ROY_TRACE_DEBUG_OTEL === "1" || process.env.ROY_TRACE_DEBUG === "1";
101
396
  }
397
+ function otelLog(message, ...args) {
398
+ getOtelLogger().info(message, ...args);
399
+ }
400
+ function otelLogWarn(message, ...args) {
401
+ getOtelLogger().warn(message, ...args);
402
+ }
403
+ function otelLogError(message, ...args) {
404
+ getOtelLogger().error(message, ...args);
405
+ }
102
406
 
103
407
  class OTelSpanImpl {
104
408
  name;
@@ -135,20 +439,20 @@ class OTelSpanImpl {
135
439
  }
136
440
  const duration = this.endTime - (this.startTime || 0);
137
441
  if (isOtelTraceDebugEnabled()) {
138
- console.log(`[OTelSpan] Ending span: name="${this.name}" traceId=${this.spanContext.traceId} spanId=${this.spanContext.spanId} duration=${duration}ms status=${error ? "ERROR" : "OK"}`);
442
+ otelLog(`[OTelSpan] Ending span: name="${this.name}" traceId=${this.spanContext.traceId} spanId=${this.spanContext.spanId} duration=${duration}ms status=${error ? "ERROR" : "OK"}`);
139
443
  }
140
444
  let storage = this.storage;
141
445
  if (!storage) {
142
- console.warn(`[OTelSpan] storage is null for "${this.name}", attempting to re-fetch...`);
446
+ otelLogWarn(`[OTelSpan] storage is null for "${this.name}", attempting to re-fetch...`);
143
447
  const provider = getTracerProvider();
144
448
  storage = provider.getStorage();
145
449
  }
146
450
  if (storage) {
147
451
  const isInitialized = storage.db || storage.initialized;
148
452
  if (!isInitialized) {
149
- console.warn(`[OTelSpan] storage not initialized for "${this.name}", initializing now...`);
453
+ otelLogWarn(`[OTelSpan] storage not initialized for "${this.name}", initializing now...`);
150
454
  storage.initialize().catch((err) => {
151
- console.error(`[OTelSpan] Failed to initialize storage:`, err);
455
+ otelLogError(`[OTelSpan] Failed to initialize storage:`, err);
152
456
  });
153
457
  }
154
458
  storage.save({
@@ -165,7 +469,7 @@ class OTelSpanImpl {
165
469
  error: this.error
166
470
  });
167
471
  } else {
168
- console.error(`[OTelSpan] Failed to save span "${this.name}": storage still null after re-fetch`);
472
+ otelLogError(`[OTelSpan] Failed to save span "${this.name}": storage still null after re-fetch`);
169
473
  }
170
474
  this.onEnd?.();
171
475
  }
@@ -261,7 +565,7 @@ class OTelTracerImpl {
261
565
  }
262
566
  this.activeSpans.set(spanId, span);
263
567
  if (isOtelTraceDebugEnabled()) {
264
- console.log(`[OTelTracer] ✓ Span created: name="${name}" traceId=${traceId} spanId=${spanId} parentSpanId=${parentSpanId || "-"}`);
568
+ otelLog(`[OTelTracer] ✓ Span created: name="${name}" traceId=${traceId} spanId=${spanId} parentSpanId=${parentSpanId || "-"}`);
265
569
  }
266
570
  return span;
267
571
  }
@@ -451,11 +755,12 @@ function getDefaultDbPath() {
451
755
  const dataHome = process.env.XDG_DATA_HOME || path.join(home, ".local", "share");
452
756
  return path.join(dataHome, "roy-agent", "traces.db");
453
757
  }
454
- var providerInstance = null, providerCounter = 0;
758
+ var _otelLogger = null, providerInstance = null, providerCounter = 0;
455
759
  var init_tracer_provider = __esm(() => {
456
760
  init_span_storage();
457
761
  init_propagation();
458
762
  init_types();
763
+ init_logger();
459
764
  });
460
765
 
461
- export { serialize, parse, propagation, init_propagation, SpanKind, SpanStatus, init_types, OTelTracerProvider, getTracerProvider, resetTracerProvider, setTracerProvider, exports_tracer_provider, init_tracer_provider };
766
+ export { serialize, parse, propagation, init_propagation, SpanKind, SpanStatus, init_types, OTelTracerProvider, getTracerProvider, resetTracerProvider, setTracerProvider, exports_tracer_provider, init_tracer_provider, simplifyFilePath, isQuietMode, setQuietMode, setConfigComponent, getLogLevel, getLogFile, getLogDir, getMaxOutput, setLogDirOverride, getLogDirOverride, createLogger, getLogLevels, init_logger };
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  init_context
3
- } from "./roy-agent-core-h7ak839w.js";
3
+ } from "./roy-agent-core-m2pxg5d8.js";
4
4
  import {
5
5
  getEnvContext
6
- } from "./roy-agent-core-xrr7t0qc.js";
6
+ } from "./roy-agent-core-7p6rny5m.js";
7
7
  import {
8
8
  __esm
9
9
  } from "./roy-agent-core-fs0mn2jk.js";
@@ -9,7 +9,7 @@ import {
9
9
  searchTasksTool,
10
10
  treeTasksTool,
11
11
  updateTaskTool
12
- } from "./roy-agent-core-k4byknt1.js";
12
+ } from "./roy-agent-core-htwb9yj6.js";
13
13
  import {
14
14
  createOperationTool,
15
15
  deleteOperationTool,
@@ -27,11 +27,11 @@ import {
27
27
  BackgroundTaskManager,
28
28
  createDelegateTool,
29
29
  createStopTool
30
- } from "./roy-agent-core-2yt4jmzv.js";
30
+ } from "./roy-agent-core-sh94bwdf.js";
31
31
  import {
32
32
  SQLiteTaskStore,
33
33
  getDefaultTaskDbPath
34
- } from "./roy-agent-core-3ep1dxf1.js";
34
+ } from "./roy-agent-core-h76sw3ar.js";
35
35
  import {
36
36
  TaskHookPoints
37
37
  } from "./roy-agent-core-1pg0fepg.js";
@@ -40,23 +40,23 @@ import {
40
40
  } from "./roy-agent-core-7hh0brvs.js";
41
41
  import {
42
42
  BaseComponent
43
- } from "./roy-agent-core-pde8hkq4.js";
43
+ } from "./roy-agent-core-m725wp1x.js";
44
44
  import {
45
45
  globalHookManager,
46
46
  init_global_hook_manager
47
- } from "./roy-agent-core-j29yg06n.js";
47
+ } from "./roy-agent-core-g772q3gf.js";
48
48
  import {
49
49
  getEnvContextOrEmpty,
50
50
  init_env_context
51
- } from "./roy-agent-core-xrr7t0qc.js";
51
+ } from "./roy-agent-core-7p6rny5m.js";
52
52
  import {
53
53
  TracedAs,
54
54
  init_decorator
55
- } from "./roy-agent-core-gb7pm9c0.js";
55
+ } from "./roy-agent-core-38rtrpk3.js";
56
56
  import {
57
57
  createLogger,
58
58
  init_logger
59
- } from "./roy-agent-core-kaq037np.js";
59
+ } from "./roy-agent-core-e6dahpp2.js";
60
60
  import {
61
61
  __legacyDecorateClassTS
62
62
  } from "./roy-agent-core-fs0mn2jk.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  adaptMcpTool
3
- } from "./roy-agent-core-dxfd6p1c.js";
3
+ } from "./roy-agent-core-ncvqfx7m.js";
4
4
  import {
5
5
  ComponentError,
6
6
  ErrorCodes
@@ -10,11 +10,11 @@ import {
10
10
  } from "./roy-agent-core-7hh0brvs.js";
11
11
  import {
12
12
  BaseComponent
13
- } from "./roy-agent-core-pde8hkq4.js";
13
+ } from "./roy-agent-core-m725wp1x.js";
14
14
  import {
15
15
  createLogger,
16
16
  init_logger
17
- } from "./roy-agent-core-kaq037np.js";
17
+ } from "./roy-agent-core-e6dahpp2.js";
18
18
  import {
19
19
  ensureFallbackNpmPrefix,
20
20
  isUsableNpmPrefix
@@ -0,0 +1,10 @@
1
+ import {
2
+ TagRepository
3
+ } from "./roy-agent-core-1h6h6h37.js";
4
+ import"./roy-agent-core-38rtrpk3.js";
5
+ import"./roy-agent-core-e6dahpp2.js";
6
+ import"./roy-agent-core-4an1p9a1.js";
7
+ import"./roy-agent-core-fs0mn2jk.js";
8
+ export {
9
+ TagRepository
10
+ };