agentic-qe 1.8.3 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/.claude/skills/agentic-jujutsu/SKILL.md +645 -0
  2. package/.claude/skills/cicd-pipeline-qe-orchestrator/README.md +2 -2
  3. package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +6 -6
  4. package/CHANGELOG.md +595 -0
  5. package/README.md +117 -16
  6. package/config/constitution.schema.json +423 -0
  7. package/config/otel-collector.yaml +234 -0
  8. package/dist/App.d.ts +5 -0
  9. package/dist/App.d.ts.map +1 -0
  10. package/dist/App.js +15 -0
  11. package/dist/App.js.map +1 -0
  12. package/dist/cli/commands/constitution.d.ts +34 -0
  13. package/dist/cli/commands/constitution.d.ts.map +1 -0
  14. package/dist/cli/commands/constitution.js +679 -0
  15. package/dist/cli/commands/constitution.js.map +1 -0
  16. package/dist/cli/commands/init-claude-md-template.js +3 -3
  17. package/dist/cli/commands/init.d.ts +8 -75
  18. package/dist/cli/commands/init.d.ts.map +1 -1
  19. package/dist/cli/commands/init.js +22 -2292
  20. package/dist/cli/commands/init.js.map +1 -1
  21. package/dist/cli/commands/telemetry.d.ts +36 -0
  22. package/dist/cli/commands/telemetry.d.ts.map +1 -0
  23. package/dist/cli/commands/telemetry.js +364 -0
  24. package/dist/cli/commands/telemetry.js.map +1 -0
  25. package/dist/cli/index.js +66 -0
  26. package/dist/cli/index.js.map +1 -1
  27. package/dist/cli/init/agents.d.ts +22 -0
  28. package/dist/cli/init/agents.d.ts.map +1 -0
  29. package/dist/cli/init/agents.js +522 -0
  30. package/dist/cli/init/agents.js.map +1 -0
  31. package/dist/cli/init/bash-wrapper.d.ts +14 -0
  32. package/dist/cli/init/bash-wrapper.d.ts.map +1 -0
  33. package/dist/cli/init/bash-wrapper.js +47 -0
  34. package/dist/cli/init/bash-wrapper.js.map +1 -0
  35. package/dist/cli/init/claude-config.d.ts +24 -0
  36. package/dist/cli/init/claude-config.d.ts.map +1 -0
  37. package/dist/cli/init/claude-config.js +275 -0
  38. package/dist/cli/init/claude-config.js.map +1 -0
  39. package/dist/cli/init/claude-md.d.ts +19 -0
  40. package/dist/cli/init/claude-md.d.ts.map +1 -0
  41. package/dist/cli/init/claude-md.js +153 -0
  42. package/dist/cli/init/claude-md.js.map +1 -0
  43. package/dist/cli/init/commands.d.ts +6 -0
  44. package/dist/cli/init/commands.d.ts.map +1 -0
  45. package/dist/cli/init/commands.js +83 -0
  46. package/dist/cli/init/commands.js.map +1 -0
  47. package/dist/cli/init/database-init.d.ts +15 -0
  48. package/dist/cli/init/database-init.d.ts.map +1 -0
  49. package/dist/cli/init/database-init.js +203 -0
  50. package/dist/cli/init/database-init.js.map +1 -0
  51. package/dist/cli/init/directory-structure.d.ts +14 -0
  52. package/dist/cli/init/directory-structure.d.ts.map +1 -0
  53. package/dist/cli/init/directory-structure.js +107 -0
  54. package/dist/cli/init/directory-structure.js.map +1 -0
  55. package/dist/cli/init/documentation.d.ts +14 -0
  56. package/dist/cli/init/documentation.d.ts.map +1 -0
  57. package/dist/cli/init/documentation.js +195 -0
  58. package/dist/cli/init/documentation.js.map +1 -0
  59. package/dist/cli/init/fleet-config.d.ts +34 -0
  60. package/dist/cli/init/fleet-config.d.ts.map +1 -0
  61. package/dist/cli/init/fleet-config.js +269 -0
  62. package/dist/cli/init/fleet-config.js.map +1 -0
  63. package/dist/cli/init/helpers.d.ts +6 -0
  64. package/dist/cli/init/helpers.d.ts.map +1 -0
  65. package/dist/cli/init/helpers.js +94 -0
  66. package/dist/cli/init/helpers.js.map +1 -0
  67. package/dist/cli/init/index.d.ts +32 -0
  68. package/dist/cli/init/index.d.ts.map +1 -0
  69. package/dist/cli/init/index.js +294 -0
  70. package/dist/cli/init/index.js.map +1 -0
  71. package/dist/cli/init/skills.d.ts +6 -0
  72. package/dist/cli/init/skills.d.ts.map +1 -0
  73. package/dist/cli/init/skills.js +138 -0
  74. package/dist/cli/init/skills.js.map +1 -0
  75. package/dist/cli/init/utils/file-utils.d.ts +74 -0
  76. package/dist/cli/init/utils/file-utils.d.ts.map +1 -0
  77. package/dist/cli/init/utils/file-utils.js +187 -0
  78. package/dist/cli/init/utils/file-utils.js.map +1 -0
  79. package/dist/cli/init/utils/index.d.ts +18 -0
  80. package/dist/cli/init/utils/index.d.ts.map +1 -0
  81. package/dist/cli/init/utils/index.js +48 -0
  82. package/dist/cli/init/utils/index.js.map +1 -0
  83. package/dist/cli/init/utils/log-utils.d.ts +47 -0
  84. package/dist/cli/init/utils/log-utils.d.ts.map +1 -0
  85. package/dist/cli/init/utils/log-utils.js +68 -0
  86. package/dist/cli/init/utils/log-utils.js.map +1 -0
  87. package/dist/cli/init/utils/path-utils.d.ts +91 -0
  88. package/dist/cli/init/utils/path-utils.d.ts.map +1 -0
  89. package/dist/cli/init/utils/path-utils.js +208 -0
  90. package/dist/cli/init/utils/path-utils.js.map +1 -0
  91. package/dist/cli/init/utils/validation-utils.d.ts +44 -0
  92. package/dist/cli/init/utils/validation-utils.d.ts.map +1 -0
  93. package/dist/cli/init/utils/validation-utils.js +68 -0
  94. package/dist/cli/init/utils/validation-utils.js.map +1 -0
  95. package/dist/cli/init/utils.d.ts +183 -0
  96. package/dist/cli/init/utils.d.ts.map +1 -0
  97. package/dist/cli/init/utils.js +354 -0
  98. package/dist/cli/init/utils.js.map +1 -0
  99. package/dist/components/Dashboard/Dashboard.d.ts +4 -0
  100. package/dist/components/Dashboard/Dashboard.d.ts.map +1 -0
  101. package/dist/components/Dashboard/Dashboard.js +148 -0
  102. package/dist/components/Dashboard/Dashboard.js.map +1 -0
  103. package/dist/components/Dashboard/DashboardHeader.d.ts +4 -0
  104. package/dist/components/Dashboard/DashboardHeader.d.ts.map +1 -0
  105. package/dist/components/Dashboard/DashboardHeader.js +138 -0
  106. package/dist/components/Dashboard/DashboardHeader.js.map +1 -0
  107. package/dist/constitution/evaluators/ast-evaluator.d.ts +42 -0
  108. package/dist/constitution/evaluators/ast-evaluator.d.ts.map +1 -0
  109. package/dist/constitution/evaluators/ast-evaluator.js +303 -0
  110. package/dist/constitution/evaluators/ast-evaluator.js.map +1 -0
  111. package/dist/constitution/evaluators/base.d.ts +144 -0
  112. package/dist/constitution/evaluators/base.d.ts.map +1 -0
  113. package/dist/constitution/evaluators/base.js +144 -0
  114. package/dist/constitution/evaluators/base.js.map +1 -0
  115. package/dist/constitution/evaluators/index.d.ts +19 -0
  116. package/dist/constitution/evaluators/index.d.ts.map +1 -0
  117. package/dist/constitution/evaluators/index.js +56 -0
  118. package/dist/constitution/evaluators/index.js.map +1 -0
  119. package/dist/constitution/evaluators/metric-evaluator.d.ts +59 -0
  120. package/dist/constitution/evaluators/metric-evaluator.d.ts.map +1 -0
  121. package/dist/constitution/evaluators/metric-evaluator.js +195 -0
  122. package/dist/constitution/evaluators/metric-evaluator.js.map +1 -0
  123. package/dist/constitution/evaluators/pattern-evaluator.d.ts +66 -0
  124. package/dist/constitution/evaluators/pattern-evaluator.d.ts.map +1 -0
  125. package/dist/constitution/evaluators/pattern-evaluator.js +221 -0
  126. package/dist/constitution/evaluators/pattern-evaluator.js.map +1 -0
  127. package/dist/constitution/evaluators/semantic-evaluator.d.ts +68 -0
  128. package/dist/constitution/evaluators/semantic-evaluator.d.ts.map +1 -0
  129. package/dist/constitution/evaluators/semantic-evaluator.js +250 -0
  130. package/dist/constitution/evaluators/semantic-evaluator.js.map +1 -0
  131. package/dist/constitution/index.d.ts +105 -0
  132. package/dist/constitution/index.d.ts.map +1 -0
  133. package/dist/constitution/index.js +207 -0
  134. package/dist/constitution/index.js.map +1 -0
  135. package/dist/constitution/loader.d.ts +141 -0
  136. package/dist/constitution/loader.d.ts.map +1 -0
  137. package/dist/constitution/loader.js +515 -0
  138. package/dist/constitution/loader.js.map +1 -0
  139. package/dist/constitution/schema.d.ts +409 -0
  140. package/dist/constitution/schema.d.ts.map +1 -0
  141. package/dist/constitution/schema.js +71 -0
  142. package/dist/constitution/schema.js.map +1 -0
  143. package/dist/contexts/DashboardContext.d.ts +41 -0
  144. package/dist/contexts/DashboardContext.d.ts.map +1 -0
  145. package/dist/contexts/DashboardContext.js +187 -0
  146. package/dist/contexts/DashboardContext.js.map +1 -0
  147. package/dist/core/memory/MemoryManagerFactory.d.ts +77 -0
  148. package/dist/core/memory/MemoryManagerFactory.d.ts.map +1 -0
  149. package/dist/core/memory/MemoryManagerFactory.js +270 -0
  150. package/dist/core/memory/MemoryManagerFactory.js.map +1 -0
  151. package/dist/core/memory/SwarmMemoryManager.d.ts +58 -0
  152. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  153. package/dist/core/memory/SwarmMemoryManager.js +375 -131
  154. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  155. package/dist/core/memory/index.d.ts +1 -0
  156. package/dist/core/memory/index.d.ts.map +1 -1
  157. package/dist/core/memory/index.js +12 -1
  158. package/dist/core/memory/index.js.map +1 -1
  159. package/dist/hooks/useKeyboardShortcuts.d.ts +12 -0
  160. package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  161. package/dist/hooks/useKeyboardShortcuts.js +69 -0
  162. package/dist/hooks/useKeyboardShortcuts.js.map +1 -0
  163. package/dist/mcp/handlers/memory/memory-backup.js +6 -6
  164. package/dist/mcp/handlers/memory/memory-backup.js.map +1 -1
  165. package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -1
  166. package/dist/mcp/handlers/phase2/Phase2Tools.js +4 -2
  167. package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -1
  168. package/dist/mcp/server.d.ts.map +1 -1
  169. package/dist/mcp/server.js +4 -38
  170. package/dist/mcp/server.js.map +1 -1
  171. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
  172. package/dist/mcp/services/AgentRegistry.js +4 -4
  173. package/dist/mcp/services/AgentRegistry.js.map +1 -1
  174. package/dist/persistence/event-store.d.ts +162 -0
  175. package/dist/persistence/event-store.d.ts.map +1 -0
  176. package/dist/persistence/event-store.js +315 -0
  177. package/dist/persistence/event-store.js.map +1 -0
  178. package/dist/persistence/index.d.ts +145 -0
  179. package/dist/persistence/index.d.ts.map +1 -0
  180. package/dist/persistence/index.js +227 -0
  181. package/dist/persistence/index.js.map +1 -0
  182. package/dist/persistence/metrics-aggregator.d.ts +187 -0
  183. package/dist/persistence/metrics-aggregator.d.ts.map +1 -0
  184. package/dist/persistence/metrics-aggregator.js +495 -0
  185. package/dist/persistence/metrics-aggregator.js.map +1 -0
  186. package/dist/persistence/reasoning-store.d.ts +178 -0
  187. package/dist/persistence/reasoning-store.d.ts.map +1 -0
  188. package/dist/persistence/reasoning-store.js +440 -0
  189. package/dist/persistence/reasoning-store.js.map +1 -0
  190. package/dist/persistence/schema.d.ts +181 -0
  191. package/dist/persistence/schema.d.ts.map +1 -0
  192. package/dist/persistence/schema.js +186 -0
  193. package/dist/persistence/schema.js.map +1 -0
  194. package/dist/telemetry/bootstrap.d.ts +67 -0
  195. package/dist/telemetry/bootstrap.d.ts.map +1 -0
  196. package/dist/telemetry/bootstrap.js +320 -0
  197. package/dist/telemetry/bootstrap.js.map +1 -0
  198. package/dist/telemetry/index.d.ts +16 -0
  199. package/dist/telemetry/index.d.ts.map +1 -0
  200. package/dist/telemetry/index.js +84 -0
  201. package/dist/telemetry/index.js.map +1 -0
  202. package/dist/telemetry/instrumentation/agent.d.ts +158 -0
  203. package/dist/telemetry/instrumentation/agent.d.ts.map +1 -0
  204. package/dist/telemetry/instrumentation/agent.js +372 -0
  205. package/dist/telemetry/instrumentation/agent.js.map +1 -0
  206. package/dist/telemetry/instrumentation/index.d.ts +24 -0
  207. package/dist/telemetry/instrumentation/index.d.ts.map +1 -0
  208. package/dist/telemetry/instrumentation/index.js +54 -0
  209. package/dist/telemetry/instrumentation/index.js.map +1 -0
  210. package/dist/telemetry/instrumentation/memory.d.ts +313 -0
  211. package/dist/telemetry/instrumentation/memory.d.ts.map +1 -0
  212. package/dist/telemetry/instrumentation/memory.js +552 -0
  213. package/dist/telemetry/instrumentation/memory.js.map +1 -0
  214. package/dist/telemetry/instrumentation/task.d.ts +146 -0
  215. package/dist/telemetry/instrumentation/task.d.ts.map +1 -0
  216. package/dist/telemetry/instrumentation/task.js +305 -0
  217. package/dist/telemetry/instrumentation/task.js.map +1 -0
  218. package/dist/telemetry/metrics/agent-metrics.d.ts +109 -0
  219. package/dist/telemetry/metrics/agent-metrics.d.ts.map +1 -0
  220. package/dist/telemetry/metrics/agent-metrics.js +213 -0
  221. package/dist/telemetry/metrics/agent-metrics.js.map +1 -0
  222. package/dist/telemetry/metrics/collectors/cost.d.ts +246 -0
  223. package/dist/telemetry/metrics/collectors/cost.d.ts.map +1 -0
  224. package/dist/telemetry/metrics/collectors/cost.js +526 -0
  225. package/dist/telemetry/metrics/collectors/cost.js.map +1 -0
  226. package/dist/telemetry/metrics/collectors/pricing-config.d.ts +87 -0
  227. package/dist/telemetry/metrics/collectors/pricing-config.d.ts.map +1 -0
  228. package/dist/telemetry/metrics/collectors/pricing-config.js +207 -0
  229. package/dist/telemetry/metrics/collectors/pricing-config.js.map +1 -0
  230. package/dist/telemetry/metrics/index.d.ts +54 -0
  231. package/dist/telemetry/metrics/index.d.ts.map +1 -0
  232. package/dist/telemetry/metrics/index.js +116 -0
  233. package/dist/telemetry/metrics/index.js.map +1 -0
  234. package/dist/telemetry/metrics/quality-metrics.d.ts +171 -0
  235. package/dist/telemetry/metrics/quality-metrics.d.ts.map +1 -0
  236. package/dist/telemetry/metrics/quality-metrics.js +259 -0
  237. package/dist/telemetry/metrics/quality-metrics.js.map +1 -0
  238. package/dist/telemetry/metrics/system-metrics.d.ts +129 -0
  239. package/dist/telemetry/metrics/system-metrics.d.ts.map +1 -0
  240. package/dist/telemetry/metrics/system-metrics.js +380 -0
  241. package/dist/telemetry/metrics/system-metrics.js.map +1 -0
  242. package/dist/telemetry/types.d.ts +195 -0
  243. package/dist/telemetry/types.d.ts.map +1 -0
  244. package/dist/telemetry/types.js +90 -0
  245. package/dist/telemetry/types.js.map +1 -0
  246. package/dist/visualization/api/RestEndpoints.d.ts +136 -0
  247. package/dist/visualization/api/RestEndpoints.d.ts.map +1 -0
  248. package/dist/visualization/api/RestEndpoints.js +428 -0
  249. package/dist/visualization/api/RestEndpoints.js.map +1 -0
  250. package/dist/visualization/api/WebSocketServer.d.ts +165 -0
  251. package/dist/visualization/api/WebSocketServer.d.ts.map +1 -0
  252. package/dist/visualization/api/WebSocketServer.js +518 -0
  253. package/dist/visualization/api/WebSocketServer.js.map +1 -0
  254. package/dist/visualization/core/DataTransformer.d.ts +89 -0
  255. package/dist/visualization/core/DataTransformer.d.ts.map +1 -0
  256. package/dist/visualization/core/DataTransformer.js +478 -0
  257. package/dist/visualization/core/DataTransformer.js.map +1 -0
  258. package/dist/visualization/index.d.ts +92 -0
  259. package/dist/visualization/index.d.ts.map +1 -0
  260. package/dist/visualization/index.js +121 -0
  261. package/dist/visualization/index.js.map +1 -0
  262. package/dist/visualization/types.d.ts +148 -0
  263. package/dist/visualization/types.d.ts.map +1 -0
  264. package/dist/visualization/types.js +7 -0
  265. package/dist/visualization/types.js.map +1 -0
  266. package/dist/voting/consensus.d.ts +87 -0
  267. package/dist/voting/consensus.d.ts.map +1 -0
  268. package/dist/voting/consensus.js +568 -0
  269. package/dist/voting/consensus.js.map +1 -0
  270. package/dist/voting/index.d.ts +12 -0
  271. package/dist/voting/index.d.ts.map +1 -0
  272. package/dist/voting/index.js +36 -0
  273. package/dist/voting/index.js.map +1 -0
  274. package/dist/voting/orchestrator.d.ts +65 -0
  275. package/dist/voting/orchestrator.d.ts.map +1 -0
  276. package/dist/voting/orchestrator.js +306 -0
  277. package/dist/voting/orchestrator.js.map +1 -0
  278. package/dist/voting/panel-assembly.d.ts +54 -0
  279. package/dist/voting/panel-assembly.d.ts.map +1 -0
  280. package/dist/voting/panel-assembly.js +192 -0
  281. package/dist/voting/panel-assembly.js.map +1 -0
  282. package/dist/voting/protocol.d.ts +119 -0
  283. package/dist/voting/protocol.d.ts.map +1 -0
  284. package/dist/voting/protocol.js +18 -0
  285. package/dist/voting/protocol.js.map +1 -0
  286. package/dist/voting/types.d.ts +125 -0
  287. package/dist/voting/types.d.ts.map +1 -0
  288. package/dist/voting/types.js +7 -0
  289. package/dist/voting/types.js.map +1 -0
  290. package/package.json +43 -2
@@ -0,0 +1,552 @@
1
+ "use strict";
2
+ /**
3
+ * Memory Instrumentation - OpenTelemetry spans for memory operations
4
+ *
5
+ * Provides comprehensive tracing for memory store/retrieve/search/delete operations
6
+ * with semantic attributes following OpenTelemetry conventions. Automatically instruments
7
+ * all memory operations with context propagation and performance tracking.
8
+ *
9
+ * @module telemetry/instrumentation/memory
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.memorySpanManager = exports.MemorySpanManager = void 0;
13
+ exports.withMemoryStore = withMemoryStore;
14
+ exports.withMemoryRetrieve = withMemoryRetrieve;
15
+ exports.withMemorySearch = withMemorySearch;
16
+ exports.withMemoryDelete = withMemoryDelete;
17
+ const api_1 = require("@opentelemetry/api");
18
+ const bootstrap_1 = require("../bootstrap");
19
+ const types_1 = require("../types");
20
+ /**
21
+ * Memory operation span manager
22
+ *
23
+ * Manages OpenTelemetry spans for memory operations with automatic
24
+ * context propagation and semantic attribute attachment following
25
+ * OTEL conventions for distributed tracing.
26
+ */
27
+ class MemorySpanManager {
28
+ constructor() {
29
+ this.tracer = (0, bootstrap_1.getTracer)();
30
+ this.activeSpans = new Map();
31
+ }
32
+ /**
33
+ * Start memory store span
34
+ *
35
+ * Records memory store operation with semantic attributes for namespace,
36
+ * key, value size, and optional TTL.
37
+ *
38
+ * @param config - Memory store configuration
39
+ * @returns Active span with context
40
+ */
41
+ startStoreSpan(config) {
42
+ const { agentId, namespace, key, valueSize, ttl, parentContext } = config;
43
+ const spanContext = parentContext || api_1.context.active();
44
+ const span = this.tracer.startSpan(types_1.SPAN_NAMES.MEMORY_STORE, {
45
+ attributes: {
46
+ 'memory.operation': 'store',
47
+ 'memory.namespace': namespace,
48
+ 'memory.key': key,
49
+ 'memory.value_size': valueSize,
50
+ 'agent.id': agentId.id,
51
+ 'agent.type': agentId.type,
52
+ ...(ttl !== undefined && { 'memory.ttl': ttl }),
53
+ },
54
+ }, spanContext);
55
+ // Store span for lifecycle tracking
56
+ const spanKey = `store:${namespace}:${key}`;
57
+ this.activeSpans.set(spanKey, span);
58
+ span.addEvent('memory.store.started', {
59
+ 'memory.namespace': namespace,
60
+ 'memory.key': key,
61
+ 'agent.id': agentId.id,
62
+ });
63
+ // Create context with active span
64
+ const activeContext = api_1.trace.setSpan(api_1.context.active(), span);
65
+ return { span, context: activeContext };
66
+ }
67
+ /**
68
+ * Complete memory store span
69
+ *
70
+ * @param span - Active span from startStoreSpan
71
+ * @param result - Store operation result
72
+ */
73
+ completeStoreSpan(span, result) {
74
+ if (!span) {
75
+ console.warn('[MemorySpanManager] No span provided to completeStoreSpan');
76
+ return;
77
+ }
78
+ // Add performance metrics
79
+ if (result.durationMs !== undefined) {
80
+ span.setAttribute('memory.operation_duration_ms', result.durationMs);
81
+ }
82
+ if (result.success) {
83
+ span.setStatus({ code: api_1.SpanStatusCode.OK });
84
+ span.addEvent('memory.store.completed', {
85
+ 'memory.success': true,
86
+ });
87
+ }
88
+ else {
89
+ span.setStatus({
90
+ code: api_1.SpanStatusCode.ERROR,
91
+ message: result.error?.message || 'Memory store failed',
92
+ });
93
+ if (result.error) {
94
+ span.recordException(result.error);
95
+ }
96
+ span.addEvent('memory.store.failed', {
97
+ 'error.message': result.error?.message || 'Unknown error',
98
+ });
99
+ }
100
+ span.end();
101
+ // Clean up from active spans
102
+ for (const [key, activeSpan] of this.activeSpans.entries()) {
103
+ if (activeSpan === span) {
104
+ this.activeSpans.delete(key);
105
+ break;
106
+ }
107
+ }
108
+ }
109
+ /**
110
+ * Start memory retrieve span
111
+ *
112
+ * Records memory retrieve operation with semantic attributes for namespace
113
+ * and key lookup.
114
+ *
115
+ * @param config - Memory retrieve configuration
116
+ * @returns Active span with context
117
+ */
118
+ startRetrieveSpan(config) {
119
+ const { agentId, namespace, key, parentContext } = config;
120
+ const spanContext = parentContext || api_1.context.active();
121
+ const span = this.tracer.startSpan(types_1.SPAN_NAMES.MEMORY_RETRIEVE, {
122
+ attributes: {
123
+ 'memory.operation': 'retrieve',
124
+ 'memory.namespace': namespace,
125
+ 'memory.key': key,
126
+ 'agent.id': agentId.id,
127
+ 'agent.type': agentId.type,
128
+ },
129
+ }, spanContext);
130
+ // Store span for lifecycle tracking
131
+ const spanKey = `retrieve:${namespace}:${key}`;
132
+ this.activeSpans.set(spanKey, span);
133
+ span.addEvent('memory.retrieve.started', {
134
+ 'memory.namespace': namespace,
135
+ 'memory.key': key,
136
+ 'agent.id': agentId.id,
137
+ });
138
+ // Create context with active span
139
+ const activeContext = api_1.trace.setSpan(api_1.context.active(), span);
140
+ return { span, context: activeContext };
141
+ }
142
+ /**
143
+ * Complete memory retrieve span
144
+ *
145
+ * @param span - Active span from startRetrieveSpan
146
+ * @param result - Retrieve operation result
147
+ */
148
+ completeRetrieveSpan(span, result) {
149
+ if (!span) {
150
+ console.warn('[MemorySpanManager] No span provided to completeRetrieveSpan');
151
+ return;
152
+ }
153
+ // Add result attributes
154
+ span.setAttribute('memory.found', result.found);
155
+ if (result.valueSize !== undefined) {
156
+ span.setAttribute('memory.value_size', result.valueSize);
157
+ }
158
+ if (result.durationMs !== undefined) {
159
+ span.setAttribute('memory.operation_duration_ms', result.durationMs);
160
+ }
161
+ if (result.found && !result.error) {
162
+ span.setStatus({ code: api_1.SpanStatusCode.OK });
163
+ span.addEvent('memory.retrieve.completed', {
164
+ 'memory.found': true,
165
+ });
166
+ }
167
+ else if (!result.found && !result.error) {
168
+ // Not found is not an error, just unsuccessful retrieval
169
+ span.setStatus({ code: api_1.SpanStatusCode.OK });
170
+ span.addEvent('memory.retrieve.not_found', {
171
+ 'memory.found': false,
172
+ });
173
+ }
174
+ else {
175
+ span.setStatus({
176
+ code: api_1.SpanStatusCode.ERROR,
177
+ message: result.error?.message || 'Memory retrieve failed',
178
+ });
179
+ if (result.error) {
180
+ span.recordException(result.error);
181
+ }
182
+ span.addEvent('memory.retrieve.failed', {
183
+ 'error.message': result.error?.message || 'Unknown error',
184
+ });
185
+ }
186
+ span.end();
187
+ // Clean up from active spans
188
+ for (const [key, activeSpan] of this.activeSpans.entries()) {
189
+ if (activeSpan === span) {
190
+ this.activeSpans.delete(key);
191
+ break;
192
+ }
193
+ }
194
+ }
195
+ /**
196
+ * Start memory search span
197
+ *
198
+ * Records memory search operation with semantic attributes for namespace,
199
+ * search pattern, and result limits.
200
+ *
201
+ * @param config - Memory search configuration
202
+ * @returns Active span with context
203
+ */
204
+ startSearchSpan(config) {
205
+ const { agentId, namespace, pattern, limit, parentContext } = config;
206
+ const spanContext = parentContext || api_1.context.active();
207
+ const span = this.tracer.startSpan(types_1.SPAN_NAMES.MEMORY_SEARCH, {
208
+ attributes: {
209
+ 'memory.operation': 'search',
210
+ 'memory.namespace': namespace,
211
+ 'memory.pattern': pattern,
212
+ 'agent.id': agentId.id,
213
+ 'agent.type': agentId.type,
214
+ ...(limit !== undefined && { 'memory.limit': limit }),
215
+ },
216
+ }, spanContext);
217
+ // Store span for lifecycle tracking
218
+ const spanKey = `search:${namespace}:${pattern}`;
219
+ this.activeSpans.set(spanKey, span);
220
+ span.addEvent('memory.search.started', {
221
+ 'memory.namespace': namespace,
222
+ 'memory.pattern': pattern,
223
+ 'agent.id': agentId.id,
224
+ });
225
+ // Create context with active span
226
+ const activeContext = api_1.trace.setSpan(api_1.context.active(), span);
227
+ return { span, context: activeContext };
228
+ }
229
+ /**
230
+ * Complete memory search span
231
+ *
232
+ * @param span - Active span from startSearchSpan
233
+ * @param result - Search operation result
234
+ */
235
+ completeSearchSpan(span, result) {
236
+ if (!span) {
237
+ console.warn('[MemorySpanManager] No span provided to completeSearchSpan');
238
+ return;
239
+ }
240
+ // Add result attributes
241
+ span.setAttribute('memory.result_count', result.resultCount);
242
+ if (result.durationMs !== undefined) {
243
+ span.setAttribute('memory.operation_duration_ms', result.durationMs);
244
+ }
245
+ if (!result.error) {
246
+ span.setStatus({ code: api_1.SpanStatusCode.OK });
247
+ span.addEvent('memory.search.completed', {
248
+ 'memory.result_count': result.resultCount,
249
+ });
250
+ }
251
+ else {
252
+ span.setStatus({
253
+ code: api_1.SpanStatusCode.ERROR,
254
+ message: result.error.message || 'Memory search failed',
255
+ });
256
+ span.recordException(result.error);
257
+ span.addEvent('memory.search.failed', {
258
+ 'error.message': result.error.message || 'Unknown error',
259
+ });
260
+ }
261
+ span.end();
262
+ // Clean up from active spans
263
+ for (const [key, activeSpan] of this.activeSpans.entries()) {
264
+ if (activeSpan === span) {
265
+ this.activeSpans.delete(key);
266
+ break;
267
+ }
268
+ }
269
+ }
270
+ /**
271
+ * Start memory delete span
272
+ *
273
+ * Records memory delete operation with semantic attributes for namespace
274
+ * and key deletion.
275
+ *
276
+ * @param config - Memory delete configuration
277
+ * @returns Active span with context
278
+ */
279
+ startDeleteSpan(config) {
280
+ const { agentId, namespace, key, parentContext } = config;
281
+ const spanContext = parentContext || api_1.context.active();
282
+ const span = this.tracer.startSpan('aqe.memory.delete', {
283
+ attributes: {
284
+ 'memory.operation': 'delete',
285
+ 'memory.namespace': namespace,
286
+ 'memory.key': key,
287
+ 'agent.id': agentId.id,
288
+ 'agent.type': agentId.type,
289
+ },
290
+ }, spanContext);
291
+ // Store span for lifecycle tracking
292
+ const spanKey = `delete:${namespace}:${key}`;
293
+ this.activeSpans.set(spanKey, span);
294
+ span.addEvent('memory.delete.started', {
295
+ 'memory.namespace': namespace,
296
+ 'memory.key': key,
297
+ 'agent.id': agentId.id,
298
+ });
299
+ // Create context with active span
300
+ const activeContext = api_1.trace.setSpan(api_1.context.active(), span);
301
+ return { span, context: activeContext };
302
+ }
303
+ /**
304
+ * Complete memory delete span
305
+ *
306
+ * @param span - Active span from startDeleteSpan
307
+ * @param result - Delete operation result
308
+ */
309
+ completeDeleteSpan(span, result) {
310
+ if (!span) {
311
+ console.warn('[MemorySpanManager] No span provided to completeDeleteSpan');
312
+ return;
313
+ }
314
+ // Add performance metrics
315
+ if (result.durationMs !== undefined) {
316
+ span.setAttribute('memory.operation_duration_ms', result.durationMs);
317
+ }
318
+ if (result.success) {
319
+ span.setStatus({ code: api_1.SpanStatusCode.OK });
320
+ span.addEvent('memory.delete.completed', {
321
+ 'memory.success': true,
322
+ });
323
+ }
324
+ else {
325
+ span.setStatus({
326
+ code: api_1.SpanStatusCode.ERROR,
327
+ message: result.error?.message || 'Memory delete failed',
328
+ });
329
+ if (result.error) {
330
+ span.recordException(result.error);
331
+ }
332
+ span.addEvent('memory.delete.failed', {
333
+ 'error.message': result.error?.message || 'Unknown error',
334
+ });
335
+ }
336
+ span.end();
337
+ // Clean up from active spans
338
+ for (const [key, activeSpan] of this.activeSpans.entries()) {
339
+ if (activeSpan === span) {
340
+ this.activeSpans.delete(key);
341
+ break;
342
+ }
343
+ }
344
+ }
345
+ /**
346
+ * Record memory operation error
347
+ *
348
+ * Records an error event on the currently active span.
349
+ *
350
+ * @param operation - Operation type (store, retrieve, search, delete)
351
+ * @param namespace - Memory namespace
352
+ * @param key - Memory key (if applicable)
353
+ * @param error - Error that occurred
354
+ */
355
+ recordError(operation, namespace, key, error) {
356
+ const span = api_1.trace.getActiveSpan();
357
+ if (span) {
358
+ span.recordException(error);
359
+ span.addEvent('memory.error', {
360
+ 'memory.operation': operation,
361
+ 'memory.namespace': namespace,
362
+ ...(key && { 'memory.key': key }),
363
+ 'error.message': error.message,
364
+ 'error.stack': error.stack,
365
+ });
366
+ }
367
+ }
368
+ /**
369
+ * Cleanup all active spans (for graceful shutdown)
370
+ *
371
+ * Ensures all memory operation spans are properly ended during
372
+ * application shutdown or cleanup.
373
+ */
374
+ cleanup() {
375
+ for (const [key, span] of this.activeSpans.entries()) {
376
+ console.warn(`[MemorySpanManager] Force-ending orphaned span: ${key}`);
377
+ span.setStatus({
378
+ code: api_1.SpanStatusCode.ERROR,
379
+ message: 'Span ended during cleanup',
380
+ });
381
+ span.end();
382
+ }
383
+ this.activeSpans.clear();
384
+ }
385
+ }
386
+ exports.MemorySpanManager = MemorySpanManager;
387
+ /**
388
+ * Global memory span manager instance
389
+ */
390
+ exports.memorySpanManager = new MemorySpanManager();
391
+ /**
392
+ * Execute function within memory store span context
393
+ *
394
+ * Convenience wrapper that automatically creates, tracks, and completes
395
+ * a memory store span around the provided function.
396
+ *
397
+ * @param config - Memory store configuration
398
+ * @param fn - Function to execute (receives span context)
399
+ * @returns Function result
400
+ *
401
+ * @example
402
+ * const result = await withMemoryStore(
403
+ * { agentId, namespace: 'aqe', key: 'test-plan', valueSize: 1024 },
404
+ * async (ctx) => {
405
+ * return await memoryService.store('test-plan', data);
406
+ * }
407
+ * );
408
+ */
409
+ async function withMemoryStore(config, fn) {
410
+ const { span, context: spanContext } = exports.memorySpanManager.startStoreSpan(config);
411
+ const startTime = Date.now();
412
+ try {
413
+ const result = await fn(spanContext);
414
+ const durationMs = Date.now() - startTime;
415
+ exports.memorySpanManager.completeStoreSpan(span, {
416
+ success: true,
417
+ durationMs,
418
+ });
419
+ return result;
420
+ }
421
+ catch (error) {
422
+ const durationMs = Date.now() - startTime;
423
+ exports.memorySpanManager.completeStoreSpan(span, {
424
+ success: false,
425
+ durationMs,
426
+ error: error,
427
+ });
428
+ throw error;
429
+ }
430
+ }
431
+ /**
432
+ * Execute function within memory retrieve span context
433
+ *
434
+ * Convenience wrapper that automatically creates, tracks, and completes
435
+ * a memory retrieve span around the provided function.
436
+ *
437
+ * @param config - Memory retrieve configuration
438
+ * @param fn - Function to execute (receives span context)
439
+ * @returns Function result with found flag
440
+ *
441
+ * @example
442
+ * const { found, value } = await withMemoryRetrieve(
443
+ * { agentId, namespace: 'aqe', key: 'test-plan' },
444
+ * async (ctx) => {
445
+ * return await memoryService.retrieve('test-plan');
446
+ * }
447
+ * );
448
+ */
449
+ async function withMemoryRetrieve(config, fn) {
450
+ const { span, context: spanContext } = exports.memorySpanManager.startRetrieveSpan(config);
451
+ const startTime = Date.now();
452
+ try {
453
+ const result = await fn(spanContext);
454
+ const durationMs = Date.now() - startTime;
455
+ exports.memorySpanManager.completeRetrieveSpan(span, {
456
+ found: result.found,
457
+ valueSize: result.valueSize,
458
+ durationMs,
459
+ });
460
+ return result;
461
+ }
462
+ catch (error) {
463
+ const durationMs = Date.now() - startTime;
464
+ exports.memorySpanManager.completeRetrieveSpan(span, {
465
+ found: false,
466
+ durationMs,
467
+ error: error,
468
+ });
469
+ throw error;
470
+ }
471
+ }
472
+ /**
473
+ * Execute function within memory search span context
474
+ *
475
+ * Convenience wrapper that automatically creates, tracks, and completes
476
+ * a memory search span around the provided function.
477
+ *
478
+ * @param config - Memory search configuration
479
+ * @param fn - Function to execute (receives span context)
480
+ * @returns Function result with result count
481
+ *
482
+ * @example
483
+ * const results = await withMemorySearch(
484
+ * { agentId, namespace: 'aqe', pattern: 'test-*', limit: 10 },
485
+ * async (ctx) => {
486
+ * return await memoryService.search('test-*');
487
+ * }
488
+ * );
489
+ */
490
+ async function withMemorySearch(config, fn) {
491
+ const { span, context: spanContext } = exports.memorySpanManager.startSearchSpan(config);
492
+ const startTime = Date.now();
493
+ try {
494
+ const results = await fn(spanContext);
495
+ const durationMs = Date.now() - startTime;
496
+ exports.memorySpanManager.completeSearchSpan(span, {
497
+ resultCount: results.length,
498
+ durationMs,
499
+ });
500
+ return results;
501
+ }
502
+ catch (error) {
503
+ const durationMs = Date.now() - startTime;
504
+ exports.memorySpanManager.completeSearchSpan(span, {
505
+ resultCount: 0,
506
+ durationMs,
507
+ error: error,
508
+ });
509
+ throw error;
510
+ }
511
+ }
512
+ /**
513
+ * Execute function within memory delete span context
514
+ *
515
+ * Convenience wrapper that automatically creates, tracks, and completes
516
+ * a memory delete span around the provided function.
517
+ *
518
+ * @param config - Memory delete configuration
519
+ * @param fn - Function to execute (receives span context)
520
+ * @returns Function result
521
+ *
522
+ * @example
523
+ * await withMemoryDelete(
524
+ * { agentId, namespace: 'aqe', key: 'test-plan' },
525
+ * async (ctx) => {
526
+ * await memoryService.delete('test-plan');
527
+ * }
528
+ * );
529
+ */
530
+ async function withMemoryDelete(config, fn) {
531
+ const { span, context: spanContext } = exports.memorySpanManager.startDeleteSpan(config);
532
+ const startTime = Date.now();
533
+ try {
534
+ const result = await fn(spanContext);
535
+ const durationMs = Date.now() - startTime;
536
+ exports.memorySpanManager.completeDeleteSpan(span, {
537
+ success: true,
538
+ durationMs,
539
+ });
540
+ return result;
541
+ }
542
+ catch (error) {
543
+ const durationMs = Date.now() - startTime;
544
+ exports.memorySpanManager.completeDeleteSpan(span, {
545
+ success: false,
546
+ durationMs,
547
+ error: error,
548
+ });
549
+ throw error;
550
+ }
551
+ }
552
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/telemetry/instrumentation/memory.ts"],"names":[],"mappings":"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"}