beeai-framework 0.1.6 → 0.1.7

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 (137) hide show
  1. package/dist/adapters/vercel/backend/chat.cjs +0 -1
  2. package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
  3. package/dist/adapters/vercel/backend/chat.js +0 -1
  4. package/dist/adapters/vercel/backend/chat.js.map +1 -1
  5. package/dist/adapters/watsonx/backend/chat.cjs +6 -2
  6. package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
  7. package/dist/adapters/watsonx/backend/chat.d.cts +1 -1
  8. package/dist/adapters/watsonx/backend/chat.d.ts +1 -1
  9. package/dist/adapters/watsonx/backend/chat.js +6 -2
  10. package/dist/adapters/watsonx/backend/chat.js.map +1 -1
  11. package/dist/agent-Bf2FaCKy.d.ts +84 -0
  12. package/dist/agent-Bpt7IFa_.d.cts +84 -0
  13. package/dist/agents/experimental/remote/agent.cjs +25 -18
  14. package/dist/agents/experimental/remote/agent.cjs.map +1 -1
  15. package/dist/agents/experimental/remote/agent.d.cts +4 -3
  16. package/dist/agents/experimental/remote/agent.d.ts +4 -3
  17. package/dist/agents/experimental/remote/agent.js +26 -19
  18. package/dist/agents/experimental/remote/agent.js.map +1 -1
  19. package/dist/agents/{bee → react}/agent.cjs +5 -5
  20. package/dist/agents/react/agent.cjs.map +1 -0
  21. package/dist/agents/{bee → react}/agent.d.cts +1 -1
  22. package/dist/agents/{bee → react}/agent.d.ts +1 -1
  23. package/dist/agents/{bee → react}/agent.js +5 -5
  24. package/dist/agents/react/agent.js.map +1 -0
  25. package/dist/agents/{bee → react}/prompts.cjs +18 -18
  26. package/dist/agents/react/prompts.cjs.map +1 -0
  27. package/dist/agents/{bee → react}/prompts.d.cts +10 -10
  28. package/dist/agents/{bee → react}/prompts.d.ts +10 -10
  29. package/dist/agents/{bee → react}/prompts.js +10 -10
  30. package/dist/agents/react/prompts.js.map +1 -0
  31. package/dist/agents/{bee → react}/runners/base.cjs +1 -1
  32. package/dist/agents/{bee → react}/runners/base.cjs.map +1 -1
  33. package/dist/agents/{bee → react}/runners/base.d.cts +1 -1
  34. package/dist/agents/{bee → react}/runners/base.d.ts +1 -1
  35. package/dist/agents/{bee → react}/runners/base.js +1 -1
  36. package/dist/agents/{bee → react}/runners/base.js.map +1 -1
  37. package/dist/agents/{bee → react}/runners/deep-think/prompts.cjs +14 -14
  38. package/dist/agents/react/runners/deep-think/prompts.cjs.map +1 -0
  39. package/dist/agents/{bee/runners/granite → react/runners/deep-think}/prompts.d.cts +8 -8
  40. package/dist/agents/{bee/runners/granite → react/runners/deep-think}/prompts.d.ts +8 -8
  41. package/dist/agents/{bee → react}/runners/deep-think/prompts.js +9 -9
  42. package/dist/agents/react/runners/deep-think/prompts.js.map +1 -0
  43. package/dist/agents/{bee → react}/runners/deep-think/runner.cjs +10 -10
  44. package/dist/agents/react/runners/deep-think/runner.cjs.map +1 -0
  45. package/dist/agents/{bee → react}/runners/deep-think/runner.d.cts +4 -4
  46. package/dist/agents/{bee → react}/runners/deep-think/runner.d.ts +4 -4
  47. package/dist/agents/{bee → react}/runners/deep-think/runner.js +12 -12
  48. package/dist/agents/react/runners/deep-think/runner.js.map +1 -0
  49. package/dist/agents/{bee → react}/runners/default/runner.cjs +10 -10
  50. package/dist/agents/react/runners/default/runner.cjs.map +1 -0
  51. package/dist/agents/{bee → react}/runners/default/runner.d.cts +7 -7
  52. package/dist/agents/{bee → react}/runners/default/runner.d.ts +7 -7
  53. package/dist/agents/{bee → react}/runners/default/runner.js +11 -11
  54. package/dist/agents/react/runners/default/runner.js.map +1 -0
  55. package/dist/agents/{bee → react}/runners/default/runner.spec.cjs +5 -5
  56. package/dist/agents/react/runners/default/runner.spec.cjs.map +1 -0
  57. package/dist/agents/{bee → react}/runners/default/runner.spec.js +6 -6
  58. package/dist/agents/react/runners/default/runner.spec.js.map +1 -0
  59. package/dist/agents/{bee → react}/runners/granite/prompts.cjs +14 -14
  60. package/dist/agents/react/runners/granite/prompts.cjs.map +1 -0
  61. package/dist/agents/{bee/runners/deep-think → react/runners/granite}/prompts.d.cts +8 -8
  62. package/dist/agents/{bee/runners/deep-think → react/runners/granite}/prompts.d.ts +8 -8
  63. package/dist/agents/{bee → react}/runners/granite/prompts.js +9 -9
  64. package/dist/agents/react/runners/granite/prompts.js.map +1 -0
  65. package/dist/agents/{bee → react}/runners/granite/runner.cjs +10 -10
  66. package/dist/agents/react/runners/granite/runner.cjs.map +1 -0
  67. package/dist/agents/{bee → react}/runners/granite/runner.d.cts +4 -4
  68. package/dist/agents/{bee → react}/runners/granite/runner.d.ts +4 -4
  69. package/dist/agents/{bee → react}/runners/granite/runner.js +12 -12
  70. package/dist/agents/react/runners/granite/runner.js.map +1 -0
  71. package/dist/agents/{bee → react}/types.d.cts +45 -45
  72. package/dist/agents/{bee → react}/types.d.ts +45 -45
  73. package/dist/agents/toolCalling/agent.cjs +208 -0
  74. package/dist/agents/toolCalling/agent.cjs.map +1 -0
  75. package/dist/agents/toolCalling/agent.d.cts +70 -0
  76. package/dist/agents/toolCalling/agent.d.ts +70 -0
  77. package/dist/agents/toolCalling/agent.js +206 -0
  78. package/dist/agents/toolCalling/agent.js.map +1 -0
  79. package/dist/agents/toolCalling/prompts.cjs +65 -0
  80. package/dist/agents/toolCalling/prompts.cjs.map +1 -0
  81. package/dist/agents/toolCalling/prompts.d.cts +49 -0
  82. package/dist/agents/toolCalling/prompts.d.ts +49 -0
  83. package/dist/agents/toolCalling/prompts.js +62 -0
  84. package/dist/agents/toolCalling/prompts.js.map +1 -0
  85. package/dist/agents/toolCalling/types.cjs +4 -0
  86. package/dist/agents/toolCalling/types.cjs.map +1 -0
  87. package/dist/agents/toolCalling/types.d.cts +66 -0
  88. package/dist/agents/toolCalling/types.d.ts +66 -0
  89. package/dist/agents/toolCalling/types.js +3 -0
  90. package/dist/agents/toolCalling/types.js.map +1 -0
  91. package/dist/backend/chat.cjs +3 -0
  92. package/dist/backend/chat.cjs.map +1 -1
  93. package/dist/backend/chat.d.cts +2 -1
  94. package/dist/backend/chat.d.ts +2 -1
  95. package/dist/backend/chat.js +3 -0
  96. package/dist/backend/chat.js.map +1 -1
  97. package/dist/backend/message.cjs +9 -0
  98. package/dist/backend/message.cjs.map +1 -1
  99. package/dist/backend/message.d.cts +2 -0
  100. package/dist/backend/message.d.ts +2 -0
  101. package/dist/backend/message.js +9 -0
  102. package/dist/backend/message.js.map +1 -1
  103. package/dist/instrumentation/create-telemetry-middleware.cjs.map +1 -1
  104. package/dist/instrumentation/create-telemetry-middleware.js.map +1 -1
  105. package/dist/version.cjs +1 -1
  106. package/dist/version.js +1 -1
  107. package/dist/workflows/agent.cjs +2 -2
  108. package/dist/workflows/agent.cjs.map +1 -1
  109. package/dist/workflows/agent.d.cts +4 -4
  110. package/dist/workflows/agent.d.ts +4 -4
  111. package/dist/workflows/agent.js +2 -2
  112. package/dist/workflows/agent.js.map +1 -1
  113. package/package.json +3 -3
  114. package/dist/agent-BZ-_ATuJ.d.cts +0 -84
  115. package/dist/agent-BqoZ6FbM.d.ts +0 -84
  116. package/dist/agents/bee/agent.cjs.map +0 -1
  117. package/dist/agents/bee/agent.js.map +0 -1
  118. package/dist/agents/bee/prompts.cjs.map +0 -1
  119. package/dist/agents/bee/prompts.js.map +0 -1
  120. package/dist/agents/bee/runners/deep-think/prompts.cjs.map +0 -1
  121. package/dist/agents/bee/runners/deep-think/prompts.js.map +0 -1
  122. package/dist/agents/bee/runners/deep-think/runner.cjs.map +0 -1
  123. package/dist/agents/bee/runners/deep-think/runner.js.map +0 -1
  124. package/dist/agents/bee/runners/default/runner.cjs.map +0 -1
  125. package/dist/agents/bee/runners/default/runner.js.map +0 -1
  126. package/dist/agents/bee/runners/default/runner.spec.cjs.map +0 -1
  127. package/dist/agents/bee/runners/default/runner.spec.js.map +0 -1
  128. package/dist/agents/bee/runners/granite/prompts.cjs.map +0 -1
  129. package/dist/agents/bee/runners/granite/prompts.js.map +0 -1
  130. package/dist/agents/bee/runners/granite/runner.cjs.map +0 -1
  131. package/dist/agents/bee/runners/granite/runner.js.map +0 -1
  132. /package/dist/agents/{bee → react}/runners/default/runner.spec.d.cts +0 -0
  133. /package/dist/agents/{bee → react}/runners/default/runner.spec.d.ts +0 -0
  134. /package/dist/agents/{bee → react}/types.cjs +0 -0
  135. /package/dist/agents/{bee → react}/types.cjs.map +0 -0
  136. /package/dist/agents/{bee → react}/types.js +0 -0
  137. /package/dist/agents/{bee → react}/types.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["create-telemetry-middleware.ts"],"names":["createTelemetryMiddleware","context","emitter","trace","id","FrameworkError","traceId","activeTracesMap","has","set","instance","constructor","name","instrumentationLogger","debug","source","runParams","basePath","createFullPath","namespace","prompt","BaseAgent","spansMap","Map","parentIdsMap","spansToDeleteMap","generatedMessage","undefined","history","groupIterations","idNameManager","IdNameManager","newTokenEventName","partialUpdateEventName","successEventName","finishEventName","startEventName","errorEventName","eventsIterationsMap","startTimeDate","Date","getTime","startTimePerf","performance","now","convertDateToPerformance","date","serializer","traceSerializer","ignored_keys","INSTRUMENTATION_IGNORED_KEYS","cleanSpanSources","spanId","parentId","get","parent_id","spanCount","delete","match","event","path","_","meta","findLast","memory","messages","message","role","Role","USER","text","buildTraceTree","spans","JSON","parse","Array","from","values","version","Version","runErrorSpanKey","startTime","endTime","e","warn","data","includes","runId","groupId","parentRunId","createSpan","target","startedAt","createdAt","push","parentSpanId","getIds","serializedData","getSerializedObjectSafe","isEmpty","span","parent","ctx","error","getErrorSafe","lastIteration","length","lastIterationOnNewTokenSpanId","lastIterationEventSpanId","attributes","isDeepEqual","span_id","creator","dataObject","map","msg","assertLLMWithMessagesToPromptFn","rawPrompt","createSnapshot"],"mappings":"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","file":"create-telemetry-middleware.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getSerializedObjectSafe } from \"./helpers/get-serialized-object-safe.js\";\nimport { createSpan } from \"./helpers/create-span.js\";\nimport { IdNameManager } from \"./helpers/id-name-manager.js\";\nimport { getErrorSafe } from \"./helpers/get-error-safe.js\";\nimport { findLast, isDeepEqual, isEmpty } from \"remeda\";\nimport type { BeeCallbacks } from \"@/agents/bee/types.js\";\nimport type { InferCallbackValue } from \"@/emitter/types.js\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { Version } from \"@/version.js\";\nimport type { GetRunContext, RunInstance } from \"@/context.js\";\nimport type { GeneratedResponse, FrameworkSpan } from \"./types.js\";\nimport { activeTracesMap, buildTraceTree } from \"./tracer.js\";\nimport { traceSerializer } from \"./helpers/trace-serializer.js\";\nimport { INSTRUMENTATION_IGNORED_KEYS } from \"./config.js\";\nimport { createFullPath } from \"@/emitter/utils.js\";\nimport type { BeeAgent } from \"@/agents/bee/agent.js\";\nimport { instrumentationLogger } from \"./logger.js\";\nimport { BaseAgent } from \"@/agents/base.js\";\nimport { assertLLMWithMessagesToPromptFn } from \"./helpers/utils.js\";\nimport { Role } from \"@/backend/message.js\";\nimport { ChatModelEvents } from \"@/backend/chat.js\";\n\nexport function createTelemetryMiddleware() {\n return (context: GetRunContext<RunInstance, unknown>) => {\n if (!context.emitter?.trace?.id) {\n throw new FrameworkError(`Fatal error. Missing traceId`, [], { context });\n }\n\n const traceId = context.emitter?.trace?.id;\n if (activeTracesMap.has(traceId)) {\n return;\n }\n activeTracesMap.set(traceId, context.instance.constructor.name);\n\n instrumentationLogger.debug(\n {\n source: context.instance.constructor.name,\n traceId: traceId,\n },\n \"createTelemetryMiddleware\",\n );\n const { emitter, runParams, instance } = context;\n const basePath = createFullPath(emitter.namespace, \"\");\n\n let prompt: string | undefined | null = null;\n if (instance instanceof BaseAgent) {\n prompt = (runParams as Parameters<BeeAgent[\"run\"]>)[0].prompt;\n }\n\n const spansMap = new Map<string, FrameworkSpan>();\n const parentIdsMap = new Map<string, number>();\n const spansToDeleteMap = new Map<string, undefined>();\n\n let generatedMessage: GeneratedResponse | undefined = undefined;\n let history: GeneratedResponse[] | undefined = undefined;\n const groupIterations: string[] = [];\n\n const idNameManager = new IdNameManager();\n\n const newTokenEventName: keyof ChatModelEvents = `newToken`;\n const partialUpdateEventName: keyof BeeCallbacks = \"partialUpdate\";\n const successEventName: keyof ChatModelEvents = `success`;\n const finishEventName: keyof ChatModelEvents = `finish`;\n const startEventName: keyof ChatModelEvents = `start`;\n const errorEventName: keyof ChatModelEvents = `error`;\n\n const eventsIterationsMap = new Map<string, Map<string, string>>();\n\n const startTimeDate = new Date().getTime();\n const startTimePerf = performance.now();\n function convertDateToPerformance(date: Date) {\n return date.getTime() - startTimeDate + startTimePerf;\n }\n\n const serializer = traceSerializer({ ignored_keys: INSTRUMENTATION_IGNORED_KEYS });\n\n function cleanSpanSources({ spanId }: { spanId: string }) {\n const parentId = spansMap.get(spanId)?.parent_id;\n if (!parentId) {\n return;\n }\n\n const spanCount = parentIdsMap.get(parentId);\n if (!spanCount) {\n return;\n }\n\n if (spanCount > 1) {\n // increase the span count for the parentId\n parentIdsMap.set(parentId, spanCount - 1);\n } else if (spanCount === 1) {\n parentIdsMap.delete(parentId);\n // check the `spansToDelete` if the span should be deleted when it has no children's\n if (spansToDeleteMap.has(parentId)) {\n spansMap.delete(parentId);\n spansToDeleteMap.delete(parentId);\n }\n }\n }\n\n /**\n * Create OpenTelemetry spans from collected data\n */\n emitter.match(\n (event) => event.path === `${basePath}.run.${finishEventName}`,\n async (_, meta) => {\n try {\n instrumentationLogger.debug({ path: meta.path, traceId: traceId }, \"run finish event\");\n\n if (!prompt && instance instanceof BaseAgent) {\n prompt = findLast(\n instance.memory.messages,\n (message) => message.role === Role.USER,\n )?.text;\n\n if (!prompt) {\n throw new FrameworkError(\"The prompt must be defined for the agent's run\", [], {\n context,\n });\n }\n }\n\n // create tracer spans from collected data\n buildTraceTree({\n prompt: prompt,\n history,\n generatedMessage,\n spans: JSON.parse(serializer(Array.from(spansMap.values()))),\n traceId,\n version: Version,\n runErrorSpanKey: `${basePath}.run.${errorEventName}`,\n startTime: startTimePerf,\n endTime: performance.now(),\n source: activeTracesMap.get(traceId)!,\n });\n } catch (e) {\n instrumentationLogger.warn(e, \"Instrumentation error\");\n } finally {\n activeTracesMap.delete(traceId);\n }\n },\n );\n\n /**\n * This block collects all \"not run category\" events with their data and prepares spans for the OpenTelemetry.\n * The huge number of `newToken` events are skipped and only the last one for each parent event is saved because of `generated_token_count` information\n * The framework event tree structure is different from the open-telemetry tree structure and must be transformed from groupId and parentGroupId pattern via idNameManager\n * The artificial \"iteration\" main tree level is computed from the `meta.groupId`\n */\n emitter.match(\"*.*\", (data, meta) => {\n // allow `run.error` event due to the runtime error information\n if (meta.path.includes(\".run.\") && meta.path !== `${basePath}.run.${errorEventName}`) {\n return;\n }\n if (!meta.trace?.runId) {\n throw new FrameworkError(`Fatal error. Missing runId for event: ${meta.path}`, [], {\n context,\n });\n }\n\n /**\n * create groupId span level (id does not exist)\n * I use only the top-level groups like iterations other nested groups like tokens would introduce unuseful complexity\n */\n if (meta.groupId && !meta.trace.parentRunId && !groupIterations.includes(meta.groupId)) {\n spansMap.set(\n meta.groupId,\n createSpan({\n id: meta.groupId,\n name: meta.groupId,\n target: \"groupId\",\n startedAt: convertDateToPerformance(meta.createdAt),\n }),\n );\n groupIterations.push(meta.groupId);\n }\n\n const { spanId, parentSpanId } = idNameManager.getIds({\n path: meta.path,\n id: meta.id,\n runId: meta.trace.runId,\n parentRunId: meta.trace.parentRunId,\n groupId: meta.groupId,\n });\n\n const serializedData = getSerializedObjectSafe(data);\n\n // skip partialUpdate events with no data\n if (meta.name === partialUpdateEventName && isEmpty(serializedData)) {\n return;\n }\n\n const span = createSpan({\n id: spanId,\n name: meta.name,\n target: meta.path,\n ...(parentSpanId && { parent: { id: parentSpanId } }),\n ctx: getSerializedObjectSafe(meta.context),\n data: serializedData,\n error: getErrorSafe(data),\n startedAt: convertDateToPerformance(meta.createdAt),\n });\n\n const lastIteration = groupIterations[groupIterations.length - 1];\n\n // delete the `newToken` event if exists and create the new one\n const lastIterationOnNewTokenSpanId = eventsIterationsMap.get(lastIteration)?.get(meta.name);\n if (lastIterationOnNewTokenSpanId && meta.name === newTokenEventName) {\n // delete span\n cleanSpanSources({ spanId: lastIterationOnNewTokenSpanId });\n spansMap.delete(lastIterationOnNewTokenSpanId);\n }\n\n // delete the last `partialUpdate` event if the new one has same data and the original one does not have nested spans\n const lastIterationEventSpanId = eventsIterationsMap.get(lastIteration)?.get(meta.name);\n if (\n lastIterationEventSpanId &&\n partialUpdateEventName === meta.name &&\n spansMap.has(lastIterationEventSpanId)\n ) {\n const { attributes, context } = spansMap.get(lastIterationEventSpanId)!;\n\n if (isDeepEqual(serializedData, attributes.data)) {\n if (parentIdsMap.has(context.span_id)) {\n spansToDeleteMap.set(lastIterationEventSpanId, undefined);\n } else {\n // delete span\n cleanSpanSources({ spanId: lastIterationEventSpanId });\n spansMap.delete(lastIterationEventSpanId);\n }\n }\n }\n\n // create new span\n spansMap.set(span.context.span_id, span);\n // update number of nested spans for parent_id if exists\n if (span.parent_id) {\n parentIdsMap.set(span.parent_id, (parentIdsMap.get(span.parent_id) || 0) + 1);\n }\n\n // save the last event for each iteration\n if (groupIterations.length > 0) {\n if (eventsIterationsMap.has(lastIteration)) {\n eventsIterationsMap.get(lastIteration)!.set(meta.name, span.context.span_id);\n } else {\n eventsIterationsMap.set(lastIteration, new Map().set(meta.name, span.context.span_id));\n }\n }\n });\n\n // The generated response and message history are collected from the `success` agent's event\n emitter.match(\n (event) => event.name === successEventName && event.creator instanceof BaseAgent,\n (data: InferCallbackValue<BeeCallbacks[typeof successEventName]>) => {\n const { data: dataObject, memory } = data;\n\n generatedMessage = {\n role: dataObject.role,\n text: dataObject.text,\n };\n history = memory.messages.map((msg) => ({ text: msg.text, role: msg.role }));\n },\n );\n\n // Read rawPrompt from llm input only for supported adapters and create the custom event with it\n emitter.match(\n (event) => assertLLMWithMessagesToPromptFn(event.creator) && event.name === startEventName,\n (_, meta) => {\n if (assertLLMWithMessagesToPromptFn(meta.creator) && meta.trace) {\n // create a custom path to prevent event duplication\n const path = `${meta.path}.custom`;\n\n const { spanId, parentSpanId } = idNameManager.getIds({\n path,\n id: meta.id,\n runId: meta.trace.runId,\n parentRunId: meta.trace.parentRunId,\n groupId: meta.groupId,\n });\n\n spansMap.set(\n spanId,\n createSpan({\n id: spanId,\n name: `${meta.name}Custom`,\n target: path,\n startedAt: convertDateToPerformance(meta.createdAt),\n ...(parentSpanId && { parent: { id: parentSpanId } }),\n data: {\n rawPrompt: undefined,\n creator: meta.creator.createSnapshot(),\n },\n }),\n );\n }\n },\n );\n };\n}\n"]}
1
+ {"version":3,"sources":["create-telemetry-middleware.ts"],"names":["createTelemetryMiddleware","context","emitter","trace","id","FrameworkError","traceId","activeTracesMap","has","set","instance","constructor","name","instrumentationLogger","debug","source","runParams","basePath","createFullPath","namespace","prompt","BaseAgent","spansMap","Map","parentIdsMap","spansToDeleteMap","generatedMessage","undefined","history","groupIterations","idNameManager","IdNameManager","newTokenEventName","partialUpdateEventName","successEventName","finishEventName","startEventName","errorEventName","eventsIterationsMap","startTimeDate","Date","getTime","startTimePerf","performance","now","convertDateToPerformance","date","serializer","traceSerializer","ignored_keys","INSTRUMENTATION_IGNORED_KEYS","cleanSpanSources","spanId","parentId","get","parent_id","spanCount","delete","match","event","path","_","meta","findLast","memory","messages","message","role","Role","USER","text","buildTraceTree","spans","JSON","parse","Array","from","values","version","Version","runErrorSpanKey","startTime","endTime","e","warn","data","includes","runId","groupId","parentRunId","createSpan","target","startedAt","createdAt","push","parentSpanId","getIds","serializedData","getSerializedObjectSafe","isEmpty","span","parent","ctx","error","getErrorSafe","lastIteration","length","lastIterationOnNewTokenSpanId","lastIterationEventSpanId","attributes","isDeepEqual","span_id","creator","dataObject","map","msg","assertLLMWithMessagesToPromptFn","rawPrompt","createSnapshot"],"mappings":"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","file":"create-telemetry-middleware.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getSerializedObjectSafe } from \"./helpers/get-serialized-object-safe.js\";\nimport { createSpan } from \"./helpers/create-span.js\";\nimport { IdNameManager } from \"./helpers/id-name-manager.js\";\nimport { getErrorSafe } from \"./helpers/get-error-safe.js\";\nimport { findLast, isDeepEqual, isEmpty } from \"remeda\";\nimport type { ReActAgentCallbacks } from \"@/agents/react/types.js\";\nimport type { InferCallbackValue } from \"@/emitter/types.js\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { Version } from \"@/version.js\";\nimport type { GetRunContext, RunInstance } from \"@/context.js\";\nimport type { GeneratedResponse, FrameworkSpan } from \"./types.js\";\nimport { activeTracesMap, buildTraceTree } from \"./tracer.js\";\nimport { traceSerializer } from \"./helpers/trace-serializer.js\";\nimport { INSTRUMENTATION_IGNORED_KEYS } from \"./config.js\";\nimport { createFullPath } from \"@/emitter/utils.js\";\nimport type { ReActAgent } from \"@/agents/react/agent.js\";\nimport { instrumentationLogger } from \"./logger.js\";\nimport { BaseAgent } from \"@/agents/base.js\";\nimport { assertLLMWithMessagesToPromptFn } from \"./helpers/utils.js\";\nimport { Role } from \"@/backend/message.js\";\nimport { ChatModelEvents } from \"@/backend/chat.js\";\n\nexport function createTelemetryMiddleware() {\n return (context: GetRunContext<RunInstance, unknown>) => {\n if (!context.emitter?.trace?.id) {\n throw new FrameworkError(`Fatal error. Missing traceId`, [], { context });\n }\n\n const traceId = context.emitter?.trace?.id;\n if (activeTracesMap.has(traceId)) {\n return;\n }\n activeTracesMap.set(traceId, context.instance.constructor.name);\n\n instrumentationLogger.debug(\n {\n source: context.instance.constructor.name,\n traceId: traceId,\n },\n \"createTelemetryMiddleware\",\n );\n const { emitter, runParams, instance } = context;\n const basePath = createFullPath(emitter.namespace, \"\");\n\n let prompt: string | undefined | null = null;\n if (instance instanceof BaseAgent) {\n prompt = (runParams as Parameters<ReActAgent[\"run\"]>)[0].prompt;\n }\n\n const spansMap = new Map<string, FrameworkSpan>();\n const parentIdsMap = new Map<string, number>();\n const spansToDeleteMap = new Map<string, undefined>();\n\n let generatedMessage: GeneratedResponse | undefined = undefined;\n let history: GeneratedResponse[] | undefined = undefined;\n const groupIterations: string[] = [];\n\n const idNameManager = new IdNameManager();\n\n const newTokenEventName: keyof ChatModelEvents = `newToken`;\n const partialUpdateEventName: keyof ReActAgentCallbacks = \"partialUpdate\";\n const successEventName: keyof ChatModelEvents = `success`;\n const finishEventName: keyof ChatModelEvents = `finish`;\n const startEventName: keyof ChatModelEvents = `start`;\n const errorEventName: keyof ChatModelEvents = `error`;\n\n const eventsIterationsMap = new Map<string, Map<string, string>>();\n\n const startTimeDate = new Date().getTime();\n const startTimePerf = performance.now();\n function convertDateToPerformance(date: Date) {\n return date.getTime() - startTimeDate + startTimePerf;\n }\n\n const serializer = traceSerializer({ ignored_keys: INSTRUMENTATION_IGNORED_KEYS });\n\n function cleanSpanSources({ spanId }: { spanId: string }) {\n const parentId = spansMap.get(spanId)?.parent_id;\n if (!parentId) {\n return;\n }\n\n const spanCount = parentIdsMap.get(parentId);\n if (!spanCount) {\n return;\n }\n\n if (spanCount > 1) {\n // increase the span count for the parentId\n parentIdsMap.set(parentId, spanCount - 1);\n } else if (spanCount === 1) {\n parentIdsMap.delete(parentId);\n // check the `spansToDelete` if the span should be deleted when it has no children's\n if (spansToDeleteMap.has(parentId)) {\n spansMap.delete(parentId);\n spansToDeleteMap.delete(parentId);\n }\n }\n }\n\n /**\n * Create OpenTelemetry spans from collected data\n */\n emitter.match(\n (event) => event.path === `${basePath}.run.${finishEventName}`,\n async (_, meta) => {\n try {\n instrumentationLogger.debug({ path: meta.path, traceId: traceId }, \"run finish event\");\n\n if (!prompt && instance instanceof BaseAgent) {\n prompt = findLast(\n instance.memory.messages,\n (message) => message.role === Role.USER,\n )?.text;\n\n if (!prompt) {\n throw new FrameworkError(\"The prompt must be defined for the agent's run\", [], {\n context,\n });\n }\n }\n\n // create tracer spans from collected data\n buildTraceTree({\n prompt: prompt,\n history,\n generatedMessage,\n spans: JSON.parse(serializer(Array.from(spansMap.values()))),\n traceId,\n version: Version,\n runErrorSpanKey: `${basePath}.run.${errorEventName}`,\n startTime: startTimePerf,\n endTime: performance.now(),\n source: activeTracesMap.get(traceId)!,\n });\n } catch (e) {\n instrumentationLogger.warn(e, \"Instrumentation error\");\n } finally {\n activeTracesMap.delete(traceId);\n }\n },\n );\n\n /**\n * This block collects all \"not run category\" events with their data and prepares spans for the OpenTelemetry.\n * The huge number of `newToken` events are skipped and only the last one for each parent event is saved because of `generated_token_count` information\n * The framework event tree structure is different from the open-telemetry tree structure and must be transformed from groupId and parentGroupId pattern via idNameManager\n * The artificial \"iteration\" main tree level is computed from the `meta.groupId`\n */\n emitter.match(\"*.*\", (data, meta) => {\n // allow `run.error` event due to the runtime error information\n if (meta.path.includes(\".run.\") && meta.path !== `${basePath}.run.${errorEventName}`) {\n return;\n }\n if (!meta.trace?.runId) {\n throw new FrameworkError(`Fatal error. Missing runId for event: ${meta.path}`, [], {\n context,\n });\n }\n\n /**\n * create groupId span level (id does not exist)\n * I use only the top-level groups like iterations other nested groups like tokens would introduce unuseful complexity\n */\n if (meta.groupId && !meta.trace.parentRunId && !groupIterations.includes(meta.groupId)) {\n spansMap.set(\n meta.groupId,\n createSpan({\n id: meta.groupId,\n name: meta.groupId,\n target: \"groupId\",\n startedAt: convertDateToPerformance(meta.createdAt),\n }),\n );\n groupIterations.push(meta.groupId);\n }\n\n const { spanId, parentSpanId } = idNameManager.getIds({\n path: meta.path,\n id: meta.id,\n runId: meta.trace.runId,\n parentRunId: meta.trace.parentRunId,\n groupId: meta.groupId,\n });\n\n const serializedData = getSerializedObjectSafe(data);\n\n // skip partialUpdate events with no data\n if (meta.name === partialUpdateEventName && isEmpty(serializedData)) {\n return;\n }\n\n const span = createSpan({\n id: spanId,\n name: meta.name,\n target: meta.path,\n ...(parentSpanId && { parent: { id: parentSpanId } }),\n ctx: getSerializedObjectSafe(meta.context),\n data: serializedData,\n error: getErrorSafe(data),\n startedAt: convertDateToPerformance(meta.createdAt),\n });\n\n const lastIteration = groupIterations[groupIterations.length - 1];\n\n // delete the `newToken` event if exists and create the new one\n const lastIterationOnNewTokenSpanId = eventsIterationsMap.get(lastIteration)?.get(meta.name);\n if (lastIterationOnNewTokenSpanId && meta.name === newTokenEventName) {\n // delete span\n cleanSpanSources({ spanId: lastIterationOnNewTokenSpanId });\n spansMap.delete(lastIterationOnNewTokenSpanId);\n }\n\n // delete the last `partialUpdate` event if the new one has same data and the original one does not have nested spans\n const lastIterationEventSpanId = eventsIterationsMap.get(lastIteration)?.get(meta.name);\n if (\n lastIterationEventSpanId &&\n partialUpdateEventName === meta.name &&\n spansMap.has(lastIterationEventSpanId)\n ) {\n const { attributes, context } = spansMap.get(lastIterationEventSpanId)!;\n\n if (isDeepEqual(serializedData, attributes.data)) {\n if (parentIdsMap.has(context.span_id)) {\n spansToDeleteMap.set(lastIterationEventSpanId, undefined);\n } else {\n // delete span\n cleanSpanSources({ spanId: lastIterationEventSpanId });\n spansMap.delete(lastIterationEventSpanId);\n }\n }\n }\n\n // create new span\n spansMap.set(span.context.span_id, span);\n // update number of nested spans for parent_id if exists\n if (span.parent_id) {\n parentIdsMap.set(span.parent_id, (parentIdsMap.get(span.parent_id) || 0) + 1);\n }\n\n // save the last event for each iteration\n if (groupIterations.length > 0) {\n if (eventsIterationsMap.has(lastIteration)) {\n eventsIterationsMap.get(lastIteration)!.set(meta.name, span.context.span_id);\n } else {\n eventsIterationsMap.set(lastIteration, new Map().set(meta.name, span.context.span_id));\n }\n }\n });\n\n // The generated response and message history are collected from the `success` agent's event\n emitter.match(\n (event) => event.name === successEventName && event.creator instanceof BaseAgent,\n (data: InferCallbackValue<ReActAgentCallbacks[typeof successEventName]>) => {\n const { data: dataObject, memory } = data;\n\n generatedMessage = {\n role: dataObject.role,\n text: dataObject.text,\n };\n history = memory.messages.map((msg) => ({ text: msg.text, role: msg.role }));\n },\n );\n\n // Read rawPrompt from llm input only for supported adapters and create the custom event with it\n emitter.match(\n (event) => assertLLMWithMessagesToPromptFn(event.creator) && event.name === startEventName,\n (_, meta) => {\n if (assertLLMWithMessagesToPromptFn(meta.creator) && meta.trace) {\n // create a custom path to prevent event duplication\n const path = `${meta.path}.custom`;\n\n const { spanId, parentSpanId } = idNameManager.getIds({\n path,\n id: meta.id,\n runId: meta.trace.runId,\n parentRunId: meta.trace.parentRunId,\n groupId: meta.groupId,\n });\n\n spansMap.set(\n spanId,\n createSpan({\n id: spanId,\n name: `${meta.name}Custom`,\n target: path,\n startedAt: convertDateToPerformance(meta.createdAt),\n ...(parentSpanId && { parent: { id: parentSpanId } }),\n data: {\n rawPrompt: undefined,\n creator: meta.creator.createSnapshot(),\n },\n }),\n );\n }\n },\n );\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["create-telemetry-middleware.ts"],"names":["createTelemetryMiddleware","context","emitter","trace","id","FrameworkError","traceId","activeTracesMap","has","set","instance","constructor","name","instrumentationLogger","debug","source","runParams","basePath","createFullPath","namespace","prompt","BaseAgent","spansMap","Map","parentIdsMap","spansToDeleteMap","generatedMessage","undefined","history","groupIterations","idNameManager","IdNameManager","newTokenEventName","partialUpdateEventName","successEventName","finishEventName","startEventName","errorEventName","eventsIterationsMap","startTimeDate","Date","getTime","startTimePerf","performance","now","convertDateToPerformance","date","serializer","traceSerializer","ignored_keys","INSTRUMENTATION_IGNORED_KEYS","cleanSpanSources","spanId","parentId","get","parent_id","spanCount","delete","match","event","path","_","meta","findLast","memory","messages","message","role","Role","USER","text","buildTraceTree","spans","JSON","parse","Array","from","values","version","Version","runErrorSpanKey","startTime","endTime","e","warn","data","includes","runId","groupId","parentRunId","createSpan","target","startedAt","createdAt","push","parentSpanId","getIds","serializedData","getSerializedObjectSafe","isEmpty","span","parent","ctx","error","getErrorSafe","lastIteration","length","lastIterationOnNewTokenSpanId","lastIterationEventSpanId","attributes","isDeepEqual","span_id","creator","dataObject","map","msg","assertLLMWithMessagesToPromptFn","rawPrompt","createSnapshot"],"mappings":"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","file":"create-telemetry-middleware.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getSerializedObjectSafe } from \"./helpers/get-serialized-object-safe.js\";\nimport { createSpan } from \"./helpers/create-span.js\";\nimport { IdNameManager } from \"./helpers/id-name-manager.js\";\nimport { getErrorSafe } from \"./helpers/get-error-safe.js\";\nimport { findLast, isDeepEqual, isEmpty } from \"remeda\";\nimport type { BeeCallbacks } from \"@/agents/bee/types.js\";\nimport type { InferCallbackValue } from \"@/emitter/types.js\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { Version } from \"@/version.js\";\nimport type { GetRunContext, RunInstance } from \"@/context.js\";\nimport type { GeneratedResponse, FrameworkSpan } from \"./types.js\";\nimport { activeTracesMap, buildTraceTree } from \"./tracer.js\";\nimport { traceSerializer } from \"./helpers/trace-serializer.js\";\nimport { INSTRUMENTATION_IGNORED_KEYS } from \"./config.js\";\nimport { createFullPath } from \"@/emitter/utils.js\";\nimport type { BeeAgent } from \"@/agents/bee/agent.js\";\nimport { instrumentationLogger } from \"./logger.js\";\nimport { BaseAgent } from \"@/agents/base.js\";\nimport { assertLLMWithMessagesToPromptFn } from \"./helpers/utils.js\";\nimport { Role } from \"@/backend/message.js\";\nimport { ChatModelEvents } from \"@/backend/chat.js\";\n\nexport function createTelemetryMiddleware() {\n return (context: GetRunContext<RunInstance, unknown>) => {\n if (!context.emitter?.trace?.id) {\n throw new FrameworkError(`Fatal error. Missing traceId`, [], { context });\n }\n\n const traceId = context.emitter?.trace?.id;\n if (activeTracesMap.has(traceId)) {\n return;\n }\n activeTracesMap.set(traceId, context.instance.constructor.name);\n\n instrumentationLogger.debug(\n {\n source: context.instance.constructor.name,\n traceId: traceId,\n },\n \"createTelemetryMiddleware\",\n );\n const { emitter, runParams, instance } = context;\n const basePath = createFullPath(emitter.namespace, \"\");\n\n let prompt: string | undefined | null = null;\n if (instance instanceof BaseAgent) {\n prompt = (runParams as Parameters<BeeAgent[\"run\"]>)[0].prompt;\n }\n\n const spansMap = new Map<string, FrameworkSpan>();\n const parentIdsMap = new Map<string, number>();\n const spansToDeleteMap = new Map<string, undefined>();\n\n let generatedMessage: GeneratedResponse | undefined = undefined;\n let history: GeneratedResponse[] | undefined = undefined;\n const groupIterations: string[] = [];\n\n const idNameManager = new IdNameManager();\n\n const newTokenEventName: keyof ChatModelEvents = `newToken`;\n const partialUpdateEventName: keyof BeeCallbacks = \"partialUpdate\";\n const successEventName: keyof ChatModelEvents = `success`;\n const finishEventName: keyof ChatModelEvents = `finish`;\n const startEventName: keyof ChatModelEvents = `start`;\n const errorEventName: keyof ChatModelEvents = `error`;\n\n const eventsIterationsMap = new Map<string, Map<string, string>>();\n\n const startTimeDate = new Date().getTime();\n const startTimePerf = performance.now();\n function convertDateToPerformance(date: Date) {\n return date.getTime() - startTimeDate + startTimePerf;\n }\n\n const serializer = traceSerializer({ ignored_keys: INSTRUMENTATION_IGNORED_KEYS });\n\n function cleanSpanSources({ spanId }: { spanId: string }) {\n const parentId = spansMap.get(spanId)?.parent_id;\n if (!parentId) {\n return;\n }\n\n const spanCount = parentIdsMap.get(parentId);\n if (!spanCount) {\n return;\n }\n\n if (spanCount > 1) {\n // increase the span count for the parentId\n parentIdsMap.set(parentId, spanCount - 1);\n } else if (spanCount === 1) {\n parentIdsMap.delete(parentId);\n // check the `spansToDelete` if the span should be deleted when it has no children's\n if (spansToDeleteMap.has(parentId)) {\n spansMap.delete(parentId);\n spansToDeleteMap.delete(parentId);\n }\n }\n }\n\n /**\n * Create OpenTelemetry spans from collected data\n */\n emitter.match(\n (event) => event.path === `${basePath}.run.${finishEventName}`,\n async (_, meta) => {\n try {\n instrumentationLogger.debug({ path: meta.path, traceId: traceId }, \"run finish event\");\n\n if (!prompt && instance instanceof BaseAgent) {\n prompt = findLast(\n instance.memory.messages,\n (message) => message.role === Role.USER,\n )?.text;\n\n if (!prompt) {\n throw new FrameworkError(\"The prompt must be defined for the agent's run\", [], {\n context,\n });\n }\n }\n\n // create tracer spans from collected data\n buildTraceTree({\n prompt: prompt,\n history,\n generatedMessage,\n spans: JSON.parse(serializer(Array.from(spansMap.values()))),\n traceId,\n version: Version,\n runErrorSpanKey: `${basePath}.run.${errorEventName}`,\n startTime: startTimePerf,\n endTime: performance.now(),\n source: activeTracesMap.get(traceId)!,\n });\n } catch (e) {\n instrumentationLogger.warn(e, \"Instrumentation error\");\n } finally {\n activeTracesMap.delete(traceId);\n }\n },\n );\n\n /**\n * This block collects all \"not run category\" events with their data and prepares spans for the OpenTelemetry.\n * The huge number of `newToken` events are skipped and only the last one for each parent event is saved because of `generated_token_count` information\n * The framework event tree structure is different from the open-telemetry tree structure and must be transformed from groupId and parentGroupId pattern via idNameManager\n * The artificial \"iteration\" main tree level is computed from the `meta.groupId`\n */\n emitter.match(\"*.*\", (data, meta) => {\n // allow `run.error` event due to the runtime error information\n if (meta.path.includes(\".run.\") && meta.path !== `${basePath}.run.${errorEventName}`) {\n return;\n }\n if (!meta.trace?.runId) {\n throw new FrameworkError(`Fatal error. Missing runId for event: ${meta.path}`, [], {\n context,\n });\n }\n\n /**\n * create groupId span level (id does not exist)\n * I use only the top-level groups like iterations other nested groups like tokens would introduce unuseful complexity\n */\n if (meta.groupId && !meta.trace.parentRunId && !groupIterations.includes(meta.groupId)) {\n spansMap.set(\n meta.groupId,\n createSpan({\n id: meta.groupId,\n name: meta.groupId,\n target: \"groupId\",\n startedAt: convertDateToPerformance(meta.createdAt),\n }),\n );\n groupIterations.push(meta.groupId);\n }\n\n const { spanId, parentSpanId } = idNameManager.getIds({\n path: meta.path,\n id: meta.id,\n runId: meta.trace.runId,\n parentRunId: meta.trace.parentRunId,\n groupId: meta.groupId,\n });\n\n const serializedData = getSerializedObjectSafe(data);\n\n // skip partialUpdate events with no data\n if (meta.name === partialUpdateEventName && isEmpty(serializedData)) {\n return;\n }\n\n const span = createSpan({\n id: spanId,\n name: meta.name,\n target: meta.path,\n ...(parentSpanId && { parent: { id: parentSpanId } }),\n ctx: getSerializedObjectSafe(meta.context),\n data: serializedData,\n error: getErrorSafe(data),\n startedAt: convertDateToPerformance(meta.createdAt),\n });\n\n const lastIteration = groupIterations[groupIterations.length - 1];\n\n // delete the `newToken` event if exists and create the new one\n const lastIterationOnNewTokenSpanId = eventsIterationsMap.get(lastIteration)?.get(meta.name);\n if (lastIterationOnNewTokenSpanId && meta.name === newTokenEventName) {\n // delete span\n cleanSpanSources({ spanId: lastIterationOnNewTokenSpanId });\n spansMap.delete(lastIterationOnNewTokenSpanId);\n }\n\n // delete the last `partialUpdate` event if the new one has same data and the original one does not have nested spans\n const lastIterationEventSpanId = eventsIterationsMap.get(lastIteration)?.get(meta.name);\n if (\n lastIterationEventSpanId &&\n partialUpdateEventName === meta.name &&\n spansMap.has(lastIterationEventSpanId)\n ) {\n const { attributes, context } = spansMap.get(lastIterationEventSpanId)!;\n\n if (isDeepEqual(serializedData, attributes.data)) {\n if (parentIdsMap.has(context.span_id)) {\n spansToDeleteMap.set(lastIterationEventSpanId, undefined);\n } else {\n // delete span\n cleanSpanSources({ spanId: lastIterationEventSpanId });\n spansMap.delete(lastIterationEventSpanId);\n }\n }\n }\n\n // create new span\n spansMap.set(span.context.span_id, span);\n // update number of nested spans for parent_id if exists\n if (span.parent_id) {\n parentIdsMap.set(span.parent_id, (parentIdsMap.get(span.parent_id) || 0) + 1);\n }\n\n // save the last event for each iteration\n if (groupIterations.length > 0) {\n if (eventsIterationsMap.has(lastIteration)) {\n eventsIterationsMap.get(lastIteration)!.set(meta.name, span.context.span_id);\n } else {\n eventsIterationsMap.set(lastIteration, new Map().set(meta.name, span.context.span_id));\n }\n }\n });\n\n // The generated response and message history are collected from the `success` agent's event\n emitter.match(\n (event) => event.name === successEventName && event.creator instanceof BaseAgent,\n (data: InferCallbackValue<BeeCallbacks[typeof successEventName]>) => {\n const { data: dataObject, memory } = data;\n\n generatedMessage = {\n role: dataObject.role,\n text: dataObject.text,\n };\n history = memory.messages.map((msg) => ({ text: msg.text, role: msg.role }));\n },\n );\n\n // Read rawPrompt from llm input only for supported adapters and create the custom event with it\n emitter.match(\n (event) => assertLLMWithMessagesToPromptFn(event.creator) && event.name === startEventName,\n (_, meta) => {\n if (assertLLMWithMessagesToPromptFn(meta.creator) && meta.trace) {\n // create a custom path to prevent event duplication\n const path = `${meta.path}.custom`;\n\n const { spanId, parentSpanId } = idNameManager.getIds({\n path,\n id: meta.id,\n runId: meta.trace.runId,\n parentRunId: meta.trace.parentRunId,\n groupId: meta.groupId,\n });\n\n spansMap.set(\n spanId,\n createSpan({\n id: spanId,\n name: `${meta.name}Custom`,\n target: path,\n startedAt: convertDateToPerformance(meta.createdAt),\n ...(parentSpanId && { parent: { id: parentSpanId } }),\n data: {\n rawPrompt: undefined,\n creator: meta.creator.createSnapshot(),\n },\n }),\n );\n }\n },\n );\n };\n}\n"]}
1
+ {"version":3,"sources":["create-telemetry-middleware.ts"],"names":["createTelemetryMiddleware","context","emitter","trace","id","FrameworkError","traceId","activeTracesMap","has","set","instance","constructor","name","instrumentationLogger","debug","source","runParams","basePath","createFullPath","namespace","prompt","BaseAgent","spansMap","Map","parentIdsMap","spansToDeleteMap","generatedMessage","undefined","history","groupIterations","idNameManager","IdNameManager","newTokenEventName","partialUpdateEventName","successEventName","finishEventName","startEventName","errorEventName","eventsIterationsMap","startTimeDate","Date","getTime","startTimePerf","performance","now","convertDateToPerformance","date","serializer","traceSerializer","ignored_keys","INSTRUMENTATION_IGNORED_KEYS","cleanSpanSources","spanId","parentId","get","parent_id","spanCount","delete","match","event","path","_","meta","findLast","memory","messages","message","role","Role","USER","text","buildTraceTree","spans","JSON","parse","Array","from","values","version","Version","runErrorSpanKey","startTime","endTime","e","warn","data","includes","runId","groupId","parentRunId","createSpan","target","startedAt","createdAt","push","parentSpanId","getIds","serializedData","getSerializedObjectSafe","isEmpty","span","parent","ctx","error","getErrorSafe","lastIteration","length","lastIterationOnNewTokenSpanId","lastIterationEventSpanId","attributes","isDeepEqual","span_id","creator","dataObject","map","msg","assertLLMWithMessagesToPromptFn","rawPrompt","createSnapshot"],"mappings":"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","file":"create-telemetry-middleware.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getSerializedObjectSafe } from \"./helpers/get-serialized-object-safe.js\";\nimport { createSpan } from \"./helpers/create-span.js\";\nimport { IdNameManager } from \"./helpers/id-name-manager.js\";\nimport { getErrorSafe } from \"./helpers/get-error-safe.js\";\nimport { findLast, isDeepEqual, isEmpty } from \"remeda\";\nimport type { ReActAgentCallbacks } from \"@/agents/react/types.js\";\nimport type { InferCallbackValue } from \"@/emitter/types.js\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { Version } from \"@/version.js\";\nimport type { GetRunContext, RunInstance } from \"@/context.js\";\nimport type { GeneratedResponse, FrameworkSpan } from \"./types.js\";\nimport { activeTracesMap, buildTraceTree } from \"./tracer.js\";\nimport { traceSerializer } from \"./helpers/trace-serializer.js\";\nimport { INSTRUMENTATION_IGNORED_KEYS } from \"./config.js\";\nimport { createFullPath } from \"@/emitter/utils.js\";\nimport type { ReActAgent } from \"@/agents/react/agent.js\";\nimport { instrumentationLogger } from \"./logger.js\";\nimport { BaseAgent } from \"@/agents/base.js\";\nimport { assertLLMWithMessagesToPromptFn } from \"./helpers/utils.js\";\nimport { Role } from \"@/backend/message.js\";\nimport { ChatModelEvents } from \"@/backend/chat.js\";\n\nexport function createTelemetryMiddleware() {\n return (context: GetRunContext<RunInstance, unknown>) => {\n if (!context.emitter?.trace?.id) {\n throw new FrameworkError(`Fatal error. Missing traceId`, [], { context });\n }\n\n const traceId = context.emitter?.trace?.id;\n if (activeTracesMap.has(traceId)) {\n return;\n }\n activeTracesMap.set(traceId, context.instance.constructor.name);\n\n instrumentationLogger.debug(\n {\n source: context.instance.constructor.name,\n traceId: traceId,\n },\n \"createTelemetryMiddleware\",\n );\n const { emitter, runParams, instance } = context;\n const basePath = createFullPath(emitter.namespace, \"\");\n\n let prompt: string | undefined | null = null;\n if (instance instanceof BaseAgent) {\n prompt = (runParams as Parameters<ReActAgent[\"run\"]>)[0].prompt;\n }\n\n const spansMap = new Map<string, FrameworkSpan>();\n const parentIdsMap = new Map<string, number>();\n const spansToDeleteMap = new Map<string, undefined>();\n\n let generatedMessage: GeneratedResponse | undefined = undefined;\n let history: GeneratedResponse[] | undefined = undefined;\n const groupIterations: string[] = [];\n\n const idNameManager = new IdNameManager();\n\n const newTokenEventName: keyof ChatModelEvents = `newToken`;\n const partialUpdateEventName: keyof ReActAgentCallbacks = \"partialUpdate\";\n const successEventName: keyof ChatModelEvents = `success`;\n const finishEventName: keyof ChatModelEvents = `finish`;\n const startEventName: keyof ChatModelEvents = `start`;\n const errorEventName: keyof ChatModelEvents = `error`;\n\n const eventsIterationsMap = new Map<string, Map<string, string>>();\n\n const startTimeDate = new Date().getTime();\n const startTimePerf = performance.now();\n function convertDateToPerformance(date: Date) {\n return date.getTime() - startTimeDate + startTimePerf;\n }\n\n const serializer = traceSerializer({ ignored_keys: INSTRUMENTATION_IGNORED_KEYS });\n\n function cleanSpanSources({ spanId }: { spanId: string }) {\n const parentId = spansMap.get(spanId)?.parent_id;\n if (!parentId) {\n return;\n }\n\n const spanCount = parentIdsMap.get(parentId);\n if (!spanCount) {\n return;\n }\n\n if (spanCount > 1) {\n // increase the span count for the parentId\n parentIdsMap.set(parentId, spanCount - 1);\n } else if (spanCount === 1) {\n parentIdsMap.delete(parentId);\n // check the `spansToDelete` if the span should be deleted when it has no children's\n if (spansToDeleteMap.has(parentId)) {\n spansMap.delete(parentId);\n spansToDeleteMap.delete(parentId);\n }\n }\n }\n\n /**\n * Create OpenTelemetry spans from collected data\n */\n emitter.match(\n (event) => event.path === `${basePath}.run.${finishEventName}`,\n async (_, meta) => {\n try {\n instrumentationLogger.debug({ path: meta.path, traceId: traceId }, \"run finish event\");\n\n if (!prompt && instance instanceof BaseAgent) {\n prompt = findLast(\n instance.memory.messages,\n (message) => message.role === Role.USER,\n )?.text;\n\n if (!prompt) {\n throw new FrameworkError(\"The prompt must be defined for the agent's run\", [], {\n context,\n });\n }\n }\n\n // create tracer spans from collected data\n buildTraceTree({\n prompt: prompt,\n history,\n generatedMessage,\n spans: JSON.parse(serializer(Array.from(spansMap.values()))),\n traceId,\n version: Version,\n runErrorSpanKey: `${basePath}.run.${errorEventName}`,\n startTime: startTimePerf,\n endTime: performance.now(),\n source: activeTracesMap.get(traceId)!,\n });\n } catch (e) {\n instrumentationLogger.warn(e, \"Instrumentation error\");\n } finally {\n activeTracesMap.delete(traceId);\n }\n },\n );\n\n /**\n * This block collects all \"not run category\" events with their data and prepares spans for the OpenTelemetry.\n * The huge number of `newToken` events are skipped and only the last one for each parent event is saved because of `generated_token_count` information\n * The framework event tree structure is different from the open-telemetry tree structure and must be transformed from groupId and parentGroupId pattern via idNameManager\n * The artificial \"iteration\" main tree level is computed from the `meta.groupId`\n */\n emitter.match(\"*.*\", (data, meta) => {\n // allow `run.error` event due to the runtime error information\n if (meta.path.includes(\".run.\") && meta.path !== `${basePath}.run.${errorEventName}`) {\n return;\n }\n if (!meta.trace?.runId) {\n throw new FrameworkError(`Fatal error. Missing runId for event: ${meta.path}`, [], {\n context,\n });\n }\n\n /**\n * create groupId span level (id does not exist)\n * I use only the top-level groups like iterations other nested groups like tokens would introduce unuseful complexity\n */\n if (meta.groupId && !meta.trace.parentRunId && !groupIterations.includes(meta.groupId)) {\n spansMap.set(\n meta.groupId,\n createSpan({\n id: meta.groupId,\n name: meta.groupId,\n target: \"groupId\",\n startedAt: convertDateToPerformance(meta.createdAt),\n }),\n );\n groupIterations.push(meta.groupId);\n }\n\n const { spanId, parentSpanId } = idNameManager.getIds({\n path: meta.path,\n id: meta.id,\n runId: meta.trace.runId,\n parentRunId: meta.trace.parentRunId,\n groupId: meta.groupId,\n });\n\n const serializedData = getSerializedObjectSafe(data);\n\n // skip partialUpdate events with no data\n if (meta.name === partialUpdateEventName && isEmpty(serializedData)) {\n return;\n }\n\n const span = createSpan({\n id: spanId,\n name: meta.name,\n target: meta.path,\n ...(parentSpanId && { parent: { id: parentSpanId } }),\n ctx: getSerializedObjectSafe(meta.context),\n data: serializedData,\n error: getErrorSafe(data),\n startedAt: convertDateToPerformance(meta.createdAt),\n });\n\n const lastIteration = groupIterations[groupIterations.length - 1];\n\n // delete the `newToken` event if exists and create the new one\n const lastIterationOnNewTokenSpanId = eventsIterationsMap.get(lastIteration)?.get(meta.name);\n if (lastIterationOnNewTokenSpanId && meta.name === newTokenEventName) {\n // delete span\n cleanSpanSources({ spanId: lastIterationOnNewTokenSpanId });\n spansMap.delete(lastIterationOnNewTokenSpanId);\n }\n\n // delete the last `partialUpdate` event if the new one has same data and the original one does not have nested spans\n const lastIterationEventSpanId = eventsIterationsMap.get(lastIteration)?.get(meta.name);\n if (\n lastIterationEventSpanId &&\n partialUpdateEventName === meta.name &&\n spansMap.has(lastIterationEventSpanId)\n ) {\n const { attributes, context } = spansMap.get(lastIterationEventSpanId)!;\n\n if (isDeepEqual(serializedData, attributes.data)) {\n if (parentIdsMap.has(context.span_id)) {\n spansToDeleteMap.set(lastIterationEventSpanId, undefined);\n } else {\n // delete span\n cleanSpanSources({ spanId: lastIterationEventSpanId });\n spansMap.delete(lastIterationEventSpanId);\n }\n }\n }\n\n // create new span\n spansMap.set(span.context.span_id, span);\n // update number of nested spans for parent_id if exists\n if (span.parent_id) {\n parentIdsMap.set(span.parent_id, (parentIdsMap.get(span.parent_id) || 0) + 1);\n }\n\n // save the last event for each iteration\n if (groupIterations.length > 0) {\n if (eventsIterationsMap.has(lastIteration)) {\n eventsIterationsMap.get(lastIteration)!.set(meta.name, span.context.span_id);\n } else {\n eventsIterationsMap.set(lastIteration, new Map().set(meta.name, span.context.span_id));\n }\n }\n });\n\n // The generated response and message history are collected from the `success` agent's event\n emitter.match(\n (event) => event.name === successEventName && event.creator instanceof BaseAgent,\n (data: InferCallbackValue<ReActAgentCallbacks[typeof successEventName]>) => {\n const { data: dataObject, memory } = data;\n\n generatedMessage = {\n role: dataObject.role,\n text: dataObject.text,\n };\n history = memory.messages.map((msg) => ({ text: msg.text, role: msg.role }));\n },\n );\n\n // Read rawPrompt from llm input only for supported adapters and create the custom event with it\n emitter.match(\n (event) => assertLLMWithMessagesToPromptFn(event.creator) && event.name === startEventName,\n (_, meta) => {\n if (assertLLMWithMessagesToPromptFn(meta.creator) && meta.trace) {\n // create a custom path to prevent event duplication\n const path = `${meta.path}.custom`;\n\n const { spanId, parentSpanId } = idNameManager.getIds({\n path,\n id: meta.id,\n runId: meta.trace.runId,\n parentRunId: meta.trace.parentRunId,\n groupId: meta.groupId,\n });\n\n spansMap.set(\n spanId,\n createSpan({\n id: spanId,\n name: `${meta.name}Custom`,\n target: path,\n startedAt: convertDateToPerformance(meta.createdAt),\n ...(parentSpanId && { parent: { id: parentSpanId } }),\n data: {\n rawPrompt: undefined,\n creator: meta.creator.createSnapshot(),\n },\n }),\n );\n }\n },\n );\n };\n}\n"]}
package/dist/version.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports.Version = "0.0.0";
4
4
  try {
5
- exports.Version = "0.1.6";
5
+ exports.Version = "0.1.7";
6
6
  } catch {
7
7
  }
8
8
  //# sourceMappingURL=version.cjs.map
package/dist/version.js CHANGED
@@ -1,6 +1,6 @@
1
1
  let Version = "0.0.0";
2
2
  try {
3
- Version = "0.1.6";
3
+ Version = "0.1.7";
4
4
  } catch {
5
5
  }
6
6
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var agent_cjs = require('../agents/bee/agent.cjs');
3
+ var agent_cjs = require('../agents/react/agent.cjs');
4
4
  var workflow_cjs = require('./workflow.cjs');
5
5
  var message_cjs = require('../backend/message.cjs');
6
6
  var zod = require('zod');
@@ -49,7 +49,7 @@ class AgentWorkflow {
49
49
  return this.workflow.delStep(name);
50
50
  }
51
51
  _createFactory(input) {
52
- return (memory) => new agent_cjs.BeeAgent({
52
+ return (memory) => new agent_cjs.ReActAgent({
53
53
  llm: input.llm,
54
54
  tools: input.tools ?? [],
55
55
  memory,
@@ -1 +1 @@
1
- {"version":3,"sources":["agent.ts"],"names":["AgentWorkflow","workflow","schema","z","object","messages","array","instanceof","Message","min","finalAnswer","string","optional","newMessages","default","constructor","name","Workflow","outputSchema","required","run","options","addAgent","agent","BaseAgent","clone","then","factory","memory","_add","meta","randomString","isFunction","_createFactory","delAgent","delStep","input","BeeAgent","llm","tools","description","instructions","execution","templates","system","template","fork","config","defaults","addStep","state","ctx","UnconstrainedMemory","addMany","asReadOnly","result","prompt","signal","text","push","AssistantMessage","join"],"mappings":"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","file":"agent.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BeeAgent } from \"@/agents/bee/agent.js\";\nimport { Workflow, WorkflowRunOptions } from \"@/workflows/workflow.js\";\nimport { AssistantMessage, Message } from \"@/backend/message.js\";\nimport { AnyTool } from \"@/tools/base.js\";\nimport { BaseMemory, ReadOnlyMemory } from \"@/memory/base.js\";\nimport { z } from \"zod\";\nimport { UnconstrainedMemory } from \"@/memory/unconstrainedMemory.js\";\nimport { BaseAgent } from \"@/agents/base.js\";\nimport {\n BeeAgentExecutionConfig,\n BeeRunInput,\n BeeRunOptions,\n BeeRunOutput,\n} from \"@/agents/bee/types.js\";\nimport { isFunction, randomString } from \"remeda\";\nimport { ChatModel } from \"@/backend/chat.js\";\n\ntype AgentInstance = BaseAgent<BeeRunInput, BeeRunOutput, BeeRunOptions>;\ntype AgentFactory = (memory: ReadOnlyMemory) => AgentInstance | Promise<AgentInstance>;\ninterface AgentFactoryInput {\n name: string;\n llm: ChatModel;\n instructions?: string;\n tools?: AnyTool[];\n execution?: BeeAgentExecutionConfig;\n}\n\nexport class AgentWorkflow {\n protected readonly workflow;\n\n static readonly schema = z.object({\n messages: z.array(z.instanceof(Message)).min(1),\n\n finalAnswer: z.string().optional(),\n newMessages: z.array(z.instanceof(Message)).default([]),\n });\n\n constructor(name = \"AgentWorkflow\") {\n this.workflow = new Workflow({\n name,\n schema: AgentWorkflow.schema,\n outputSchema: AgentWorkflow.schema.required(),\n });\n }\n\n run(messages: Message[], options: WorkflowRunOptions<string> = {}) {\n return this.workflow.run(\n {\n messages,\n },\n options,\n );\n }\n\n addAgent(agent: AgentFactory | AgentFactoryInput): this;\n addAgent(agent: AgentInstance): Promise<this>;\n addAgent(agent: AgentInstance | AgentFactory | AgentFactoryInput): this | Promise<this> {\n if (agent instanceof BaseAgent) {\n return agent.clone().then((clone) => {\n const factory: AgentFactory = (memory) => {\n clone.memory = memory;\n return clone;\n };\n return this._add(clone.meta.name, factory);\n });\n }\n\n const name = agent.name || `Agent${randomString(4)}`;\n return this._add(name, isFunction(agent) ? agent : this._createFactory(agent));\n }\n\n delAgent(name: string) {\n return this.workflow.delStep(name);\n }\n\n protected _createFactory(input: AgentFactoryInput): AgentFactory {\n return (memory: BaseMemory) =>\n new BeeAgent({\n llm: input.llm,\n tools: input.tools ?? [],\n memory,\n meta: {\n name: input.name,\n description: input.instructions ?? \"\",\n },\n execution: input.execution,\n ...(input.instructions && {\n templates: {\n system: (template) =>\n template.fork((config) => {\n config.defaults.instructions = input.instructions || config.defaults.instructions;\n }),\n },\n }),\n });\n }\n\n protected _add(name: string, factory: AgentFactory) {\n this.workflow.addStep(name, async (state, ctx) => {\n const memory = new UnconstrainedMemory();\n await memory.addMany([...state.messages, ...state.newMessages]);\n\n const agent = await factory(memory.asReadOnly());\n const { result } = await agent.run({ prompt: null }, { signal: ctx.signal });\n state.finalAnswer = result.text;\n state.newMessages.push(\n new AssistantMessage(\n [`Assistant Name: ${name}`, `Assistant Response: ${result.text}`].join(\"\\n\"),\n ),\n );\n });\n return this;\n }\n}\n"]}
1
+ {"version":3,"sources":["agent.ts"],"names":["AgentWorkflow","workflow","schema","z","object","messages","array","instanceof","Message","min","finalAnswer","string","optional","newMessages","default","constructor","name","Workflow","outputSchema","required","run","options","addAgent","agent","BaseAgent","clone","then","factory","memory","_add","meta","randomString","isFunction","_createFactory","delAgent","delStep","input","ReActAgent","llm","tools","description","instructions","execution","templates","system","template","fork","config","defaults","addStep","state","ctx","UnconstrainedMemory","addMany","asReadOnly","result","prompt","signal","text","push","AssistantMessage","join"],"mappings":"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","file":"agent.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ReActAgent } from \"@/agents/react/agent.js\";\nimport { Workflow, WorkflowRunOptions } from \"@/workflows/workflow.js\";\nimport { AssistantMessage, Message } from \"@/backend/message.js\";\nimport { AnyTool } from \"@/tools/base.js\";\nimport { BaseMemory, ReadOnlyMemory } from \"@/memory/base.js\";\nimport { z } from \"zod\";\nimport { UnconstrainedMemory } from \"@/memory/unconstrainedMemory.js\";\nimport { BaseAgent } from \"@/agents/base.js\";\nimport {\n ReActAgentExecutionConfig,\n ReActAgentRunInput,\n ReActAgentRunOptions,\n ReActAgentRunOutput,\n} from \"@/agents/react/types.js\";\nimport { isFunction, randomString } from \"remeda\";\nimport { ChatModel } from \"@/backend/chat.js\";\n\ntype AgentInstance = BaseAgent<ReActAgentRunInput, ReActAgentRunOutput, ReActAgentRunOptions>;\ntype AgentFactory = (memory: ReadOnlyMemory) => AgentInstance | Promise<AgentInstance>;\ninterface AgentFactoryInput {\n name: string;\n llm: ChatModel;\n instructions?: string;\n tools?: AnyTool[];\n execution?: ReActAgentExecutionConfig;\n}\n\nexport class AgentWorkflow {\n protected readonly workflow;\n\n static readonly schema = z.object({\n messages: z.array(z.instanceof(Message)).min(1),\n\n finalAnswer: z.string().optional(),\n newMessages: z.array(z.instanceof(Message)).default([]),\n });\n\n constructor(name = \"AgentWorkflow\") {\n this.workflow = new Workflow({\n name,\n schema: AgentWorkflow.schema,\n outputSchema: AgentWorkflow.schema.required(),\n });\n }\n\n run(messages: Message[], options: WorkflowRunOptions<string> = {}) {\n return this.workflow.run(\n {\n messages,\n },\n options,\n );\n }\n\n addAgent(agent: AgentFactory | AgentFactoryInput): this;\n addAgent(agent: AgentInstance): Promise<this>;\n addAgent(agent: AgentInstance | AgentFactory | AgentFactoryInput): this | Promise<this> {\n if (agent instanceof BaseAgent) {\n return agent.clone().then((clone) => {\n const factory: AgentFactory = (memory) => {\n clone.memory = memory;\n return clone;\n };\n return this._add(clone.meta.name, factory);\n });\n }\n\n const name = agent.name || `Agent${randomString(4)}`;\n return this._add(name, isFunction(agent) ? agent : this._createFactory(agent));\n }\n\n delAgent(name: string) {\n return this.workflow.delStep(name);\n }\n\n protected _createFactory(input: AgentFactoryInput): AgentFactory {\n return (memory: BaseMemory) =>\n new ReActAgent({\n llm: input.llm,\n tools: input.tools ?? [],\n memory,\n meta: {\n name: input.name,\n description: input.instructions ?? \"\",\n },\n execution: input.execution,\n ...(input.instructions && {\n templates: {\n system: (template) =>\n template.fork((config) => {\n config.defaults.instructions = input.instructions || config.defaults.instructions;\n }),\n },\n }),\n });\n }\n\n protected _add(name: string, factory: AgentFactory) {\n this.workflow.addStep(name, async (state, ctx) => {\n const memory = new UnconstrainedMemory();\n await memory.addMany([...state.messages, ...state.newMessages]);\n\n const agent = await factory(memory.asReadOnly());\n const { result } = await agent.run({ prompt: null }, { signal: ctx.signal });\n state.finalAnswer = result.text;\n state.newMessages.push(\n new AssistantMessage(\n [`Assistant Name: ${name}`, `Assistant Response: ${result.text}`].join(\"\\n\"),\n ),\n );\n });\n return this;\n }\n}\n"]}
@@ -5,7 +5,7 @@ import { AnyTool } from '../tools/base.cjs';
5
5
  import { ReadOnlyMemory } from '../memory/base.cjs';
6
6
  import { z } from 'zod';
7
7
  import { a as BaseAgent } from '../base-daM6fHUP.cjs';
8
- import { BeeRunInput, BeeRunOutput, BeeRunOptions, BeeAgentExecutionConfig } from '../agents/bee/types.cjs';
8
+ import { ReActAgentRunInput, ReActAgentRunOutput, ReActAgentRunOptions, ReActAgentExecutionConfig } from '../agents/react/types.cjs';
9
9
  import { ChatModel } from '../backend/chat.cjs';
10
10
  import '../emitter-C9EN5B0j.cjs';
11
11
  import '../internals/types.cjs';
@@ -19,7 +19,7 @@ import 'promise-based-task';
19
19
  import '../cache/base.cjs';
20
20
  import '../internals/helpers/schema.cjs';
21
21
  import 'zod-to-json-schema';
22
- import '../agents/bee/prompts.cjs';
22
+ import '../agents/react/prompts.cjs';
23
23
  import '../template.cjs';
24
24
  import '../parsers/linePrefix.cjs';
25
25
  import '../parsers/field.cjs';
@@ -30,14 +30,14 @@ import '../backend/utils.cjs';
30
30
  import '../backend/constants.cjs';
31
31
  import '@ai-sdk/provider';
32
32
 
33
- type AgentInstance = BaseAgent<BeeRunInput, BeeRunOutput, BeeRunOptions>;
33
+ type AgentInstance = BaseAgent<ReActAgentRunInput, ReActAgentRunOutput, ReActAgentRunOptions>;
34
34
  type AgentFactory = (memory: ReadOnlyMemory) => AgentInstance | Promise<AgentInstance>;
35
35
  interface AgentFactoryInput {
36
36
  name: string;
37
37
  llm: ChatModel;
38
38
  instructions?: string;
39
39
  tools?: AnyTool[];
40
- execution?: BeeAgentExecutionConfig;
40
+ execution?: ReActAgentExecutionConfig;
41
41
  }
42
42
  declare class AgentWorkflow {
43
43
  protected readonly workflow: Workflow<z.ZodObject<{
@@ -5,7 +5,7 @@ import { AnyTool } from '../tools/base.js';
5
5
  import { ReadOnlyMemory } from '../memory/base.js';
6
6
  import { z } from 'zod';
7
7
  import { a as BaseAgent } from '../base-mmG-8Pk9.js';
8
- import { BeeRunInput, BeeRunOutput, BeeRunOptions, BeeAgentExecutionConfig } from '../agents/bee/types.js';
8
+ import { ReActAgentRunInput, ReActAgentRunOutput, ReActAgentRunOptions, ReActAgentExecutionConfig } from '../agents/react/types.js';
9
9
  import { ChatModel } from '../backend/chat.js';
10
10
  import '../emitter-BxVxGBbJ.js';
11
11
  import '../internals/types.js';
@@ -19,7 +19,7 @@ import 'promise-based-task';
19
19
  import '../cache/base.js';
20
20
  import '../internals/helpers/schema.js';
21
21
  import 'zod-to-json-schema';
22
- import '../agents/bee/prompts.js';
22
+ import '../agents/react/prompts.js';
23
23
  import '../template.js';
24
24
  import '../parsers/linePrefix.js';
25
25
  import '../parsers/field.js';
@@ -30,14 +30,14 @@ import '../backend/utils.js';
30
30
  import '../backend/constants.js';
31
31
  import '@ai-sdk/provider';
32
32
 
33
- type AgentInstance = BaseAgent<BeeRunInput, BeeRunOutput, BeeRunOptions>;
33
+ type AgentInstance = BaseAgent<ReActAgentRunInput, ReActAgentRunOutput, ReActAgentRunOptions>;
34
34
  type AgentFactory = (memory: ReadOnlyMemory) => AgentInstance | Promise<AgentInstance>;
35
35
  interface AgentFactoryInput {
36
36
  name: string;
37
37
  llm: ChatModel;
38
38
  instructions?: string;
39
39
  tools?: AnyTool[];
40
- execution?: BeeAgentExecutionConfig;
40
+ execution?: ReActAgentExecutionConfig;
41
41
  }
42
42
  declare class AgentWorkflow {
43
43
  protected readonly workflow: Workflow<z.ZodObject<{
@@ -1,4 +1,4 @@
1
- import { BeeAgent } from '../agents/bee/agent.js';
1
+ import { ReActAgent } from '../agents/react/agent.js';
2
2
  import { Workflow } from './workflow.js';
3
3
  import { Message, AssistantMessage } from '../backend/message.js';
4
4
  import { z } from 'zod';
@@ -47,7 +47,7 @@ class AgentWorkflow {
47
47
  return this.workflow.delStep(name);
48
48
  }
49
49
  _createFactory(input) {
50
- return (memory) => new BeeAgent({
50
+ return (memory) => new ReActAgent({
51
51
  llm: input.llm,
52
52
  tools: input.tools ?? [],
53
53
  memory,
@@ -1 +1 @@
1
- {"version":3,"sources":["agent.ts"],"names":["AgentWorkflow","workflow","schema","z","object","messages","array","instanceof","Message","min","finalAnswer","string","optional","newMessages","default","constructor","name","Workflow","outputSchema","required","run","options","addAgent","agent","BaseAgent","clone","then","factory","memory","_add","meta","randomString","isFunction","_createFactory","delAgent","delStep","input","BeeAgent","llm","tools","description","instructions","execution","templates","system","template","fork","config","defaults","addStep","state","ctx","UnconstrainedMemory","addMany","asReadOnly","result","prompt","signal","text","push","AssistantMessage","join"],"mappings":"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","file":"agent.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BeeAgent } from \"@/agents/bee/agent.js\";\nimport { Workflow, WorkflowRunOptions } from \"@/workflows/workflow.js\";\nimport { AssistantMessage, Message } from \"@/backend/message.js\";\nimport { AnyTool } from \"@/tools/base.js\";\nimport { BaseMemory, ReadOnlyMemory } from \"@/memory/base.js\";\nimport { z } from \"zod\";\nimport { UnconstrainedMemory } from \"@/memory/unconstrainedMemory.js\";\nimport { BaseAgent } from \"@/agents/base.js\";\nimport {\n BeeAgentExecutionConfig,\n BeeRunInput,\n BeeRunOptions,\n BeeRunOutput,\n} from \"@/agents/bee/types.js\";\nimport { isFunction, randomString } from \"remeda\";\nimport { ChatModel } from \"@/backend/chat.js\";\n\ntype AgentInstance = BaseAgent<BeeRunInput, BeeRunOutput, BeeRunOptions>;\ntype AgentFactory = (memory: ReadOnlyMemory) => AgentInstance | Promise<AgentInstance>;\ninterface AgentFactoryInput {\n name: string;\n llm: ChatModel;\n instructions?: string;\n tools?: AnyTool[];\n execution?: BeeAgentExecutionConfig;\n}\n\nexport class AgentWorkflow {\n protected readonly workflow;\n\n static readonly schema = z.object({\n messages: z.array(z.instanceof(Message)).min(1),\n\n finalAnswer: z.string().optional(),\n newMessages: z.array(z.instanceof(Message)).default([]),\n });\n\n constructor(name = \"AgentWorkflow\") {\n this.workflow = new Workflow({\n name,\n schema: AgentWorkflow.schema,\n outputSchema: AgentWorkflow.schema.required(),\n });\n }\n\n run(messages: Message[], options: WorkflowRunOptions<string> = {}) {\n return this.workflow.run(\n {\n messages,\n },\n options,\n );\n }\n\n addAgent(agent: AgentFactory | AgentFactoryInput): this;\n addAgent(agent: AgentInstance): Promise<this>;\n addAgent(agent: AgentInstance | AgentFactory | AgentFactoryInput): this | Promise<this> {\n if (agent instanceof BaseAgent) {\n return agent.clone().then((clone) => {\n const factory: AgentFactory = (memory) => {\n clone.memory = memory;\n return clone;\n };\n return this._add(clone.meta.name, factory);\n });\n }\n\n const name = agent.name || `Agent${randomString(4)}`;\n return this._add(name, isFunction(agent) ? agent : this._createFactory(agent));\n }\n\n delAgent(name: string) {\n return this.workflow.delStep(name);\n }\n\n protected _createFactory(input: AgentFactoryInput): AgentFactory {\n return (memory: BaseMemory) =>\n new BeeAgent({\n llm: input.llm,\n tools: input.tools ?? [],\n memory,\n meta: {\n name: input.name,\n description: input.instructions ?? \"\",\n },\n execution: input.execution,\n ...(input.instructions && {\n templates: {\n system: (template) =>\n template.fork((config) => {\n config.defaults.instructions = input.instructions || config.defaults.instructions;\n }),\n },\n }),\n });\n }\n\n protected _add(name: string, factory: AgentFactory) {\n this.workflow.addStep(name, async (state, ctx) => {\n const memory = new UnconstrainedMemory();\n await memory.addMany([...state.messages, ...state.newMessages]);\n\n const agent = await factory(memory.asReadOnly());\n const { result } = await agent.run({ prompt: null }, { signal: ctx.signal });\n state.finalAnswer = result.text;\n state.newMessages.push(\n new AssistantMessage(\n [`Assistant Name: ${name}`, `Assistant Response: ${result.text}`].join(\"\\n\"),\n ),\n );\n });\n return this;\n }\n}\n"]}
1
+ {"version":3,"sources":["agent.ts"],"names":["AgentWorkflow","workflow","schema","z","object","messages","array","instanceof","Message","min","finalAnswer","string","optional","newMessages","default","constructor","name","Workflow","outputSchema","required","run","options","addAgent","agent","BaseAgent","clone","then","factory","memory","_add","meta","randomString","isFunction","_createFactory","delAgent","delStep","input","ReActAgent","llm","tools","description","instructions","execution","templates","system","template","fork","config","defaults","addStep","state","ctx","UnconstrainedMemory","addMany","asReadOnly","result","prompt","signal","text","push","AssistantMessage","join"],"mappings":"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","file":"agent.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ReActAgent } from \"@/agents/react/agent.js\";\nimport { Workflow, WorkflowRunOptions } from \"@/workflows/workflow.js\";\nimport { AssistantMessage, Message } from \"@/backend/message.js\";\nimport { AnyTool } from \"@/tools/base.js\";\nimport { BaseMemory, ReadOnlyMemory } from \"@/memory/base.js\";\nimport { z } from \"zod\";\nimport { UnconstrainedMemory } from \"@/memory/unconstrainedMemory.js\";\nimport { BaseAgent } from \"@/agents/base.js\";\nimport {\n ReActAgentExecutionConfig,\n ReActAgentRunInput,\n ReActAgentRunOptions,\n ReActAgentRunOutput,\n} from \"@/agents/react/types.js\";\nimport { isFunction, randomString } from \"remeda\";\nimport { ChatModel } from \"@/backend/chat.js\";\n\ntype AgentInstance = BaseAgent<ReActAgentRunInput, ReActAgentRunOutput, ReActAgentRunOptions>;\ntype AgentFactory = (memory: ReadOnlyMemory) => AgentInstance | Promise<AgentInstance>;\ninterface AgentFactoryInput {\n name: string;\n llm: ChatModel;\n instructions?: string;\n tools?: AnyTool[];\n execution?: ReActAgentExecutionConfig;\n}\n\nexport class AgentWorkflow {\n protected readonly workflow;\n\n static readonly schema = z.object({\n messages: z.array(z.instanceof(Message)).min(1),\n\n finalAnswer: z.string().optional(),\n newMessages: z.array(z.instanceof(Message)).default([]),\n });\n\n constructor(name = \"AgentWorkflow\") {\n this.workflow = new Workflow({\n name,\n schema: AgentWorkflow.schema,\n outputSchema: AgentWorkflow.schema.required(),\n });\n }\n\n run(messages: Message[], options: WorkflowRunOptions<string> = {}) {\n return this.workflow.run(\n {\n messages,\n },\n options,\n );\n }\n\n addAgent(agent: AgentFactory | AgentFactoryInput): this;\n addAgent(agent: AgentInstance): Promise<this>;\n addAgent(agent: AgentInstance | AgentFactory | AgentFactoryInput): this | Promise<this> {\n if (agent instanceof BaseAgent) {\n return agent.clone().then((clone) => {\n const factory: AgentFactory = (memory) => {\n clone.memory = memory;\n return clone;\n };\n return this._add(clone.meta.name, factory);\n });\n }\n\n const name = agent.name || `Agent${randomString(4)}`;\n return this._add(name, isFunction(agent) ? agent : this._createFactory(agent));\n }\n\n delAgent(name: string) {\n return this.workflow.delStep(name);\n }\n\n protected _createFactory(input: AgentFactoryInput): AgentFactory {\n return (memory: BaseMemory) =>\n new ReActAgent({\n llm: input.llm,\n tools: input.tools ?? [],\n memory,\n meta: {\n name: input.name,\n description: input.instructions ?? \"\",\n },\n execution: input.execution,\n ...(input.instructions && {\n templates: {\n system: (template) =>\n template.fork((config) => {\n config.defaults.instructions = input.instructions || config.defaults.instructions;\n }),\n },\n }),\n });\n }\n\n protected _add(name: string, factory: AgentFactory) {\n this.workflow.addStep(name, async (state, ctx) => {\n const memory = new UnconstrainedMemory();\n await memory.addMany([...state.messages, ...state.newMessages]);\n\n const agent = await factory(memory.asReadOnly());\n const { result } = await agent.run({ prompt: null }, { signal: ctx.signal });\n state.finalAnswer = result.text;\n state.newMessages.push(\n new AssistantMessage(\n [`Assistant Name: ${name}`, `Assistant Response: ${result.text}`].join(\"\\n\"),\n ),\n );\n });\n return this;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "beeai-framework",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "license": "Apache-2.0",
5
5
  "description": "BeeAI Framework - LLM Agent Framework",
6
6
  "author": "IBM Corp.",
@@ -295,7 +295,7 @@
295
295
  "@eslint/markdown": "^6.2.1",
296
296
  "@googleapis/customsearch": "^3.2.0",
297
297
  "@i-am-bee/acp-sdk": "^0.0.4",
298
- "@ibm-cloud/watsonx-ai": "^1.5.1",
298
+ "@ibm-cloud/watsonx-ai": "^1.6.0",
299
299
  "@langchain/community": "0.3.34",
300
300
  "@langchain/core": "0.3.42",
301
301
  "@langchain/langgraph": "0.2.55",
@@ -328,7 +328,7 @@
328
328
  "eslint-config-prettier": "^9.1.0",
329
329
  "eslint-plugin-unused-imports": "^4.1.4",
330
330
  "glob": "^11.0.0",
331
- "ibm-cloud-sdk-core": "^5.1.3",
331
+ "ibm-cloud-sdk-core": "^5.3.2",
332
332
  "langchain": "0.3.19",
333
333
  "linkinator": "^6.1.2",
334
334
  "lint-staged": "^15.2.10",
@@ -1,84 +0,0 @@
1
- import { GetRunContext, RunContext } from './context.cjs';
2
- import { b as AgentMeta, a as BaseAgent } from './base-daM6fHUP.cjs';
3
- import { AnyTool } from './tools/base.cjs';
4
- import { BaseMemory } from './memory/base.cjs';
5
- import { E as Emitter } from './emitter-C9EN5B0j.cjs';
6
- import { BeeRunOptions, BeeAgentRunIteration, BeeCallbacks, BeeParserInput, BeeMeta, BeeRunInput, BeeIterationToolResult, BeeAgentTemplates, BeeAgentExecutionConfig, BeeRunOutput } from './agents/bee/types.cjs';
7
- import { LinePrefixParser } from './parsers/linePrefix.cjs';
8
- import { Serializable } from './internals/serializable.cjs';
9
- import { ChatModel } from './backend/chat.cjs';
10
- import { RetryCounter } from './internals/helpers/counter.cjs';
11
-
12
- interface BeeRunnerLLMInput {
13
- meta: BeeMeta;
14
- signal: AbortSignal;
15
- emitter: Emitter<BeeCallbacks>;
16
- }
17
- interface BeeRunnerToolInput {
18
- state: BeeIterationToolResult;
19
- meta: BeeMeta;
20
- signal: AbortSignal;
21
- emitter: Emitter<BeeCallbacks>;
22
- }
23
- declare abstract class BaseRunner extends Serializable {
24
- protected readonly input: BeeInput;
25
- protected readonly options: BeeRunOptions;
26
- protected readonly run: GetRunContext<BeeAgent>;
27
- memory: BaseMemory;
28
- readonly iterations: BeeAgentRunIteration[];
29
- protected readonly failedAttemptsCounter: RetryCounter;
30
- constructor(input: BeeInput, options: BeeRunOptions, run: GetRunContext<BeeAgent>);
31
- createIteration(): Promise<{
32
- emitter: Emitter<BeeCallbacks>;
33
- state: LinePrefixParser.infer<BeeParserInput>;
34
- meta: BeeMeta;
35
- signal: AbortSignal;
36
- }>;
37
- init(input: BeeRunInput): Promise<void>;
38
- abstract llm(input: BeeRunnerLLMInput): Promise<BeeAgentRunIteration>;
39
- abstract tool(input: BeeRunnerToolInput): Promise<{
40
- output: string;
41
- success: boolean;
42
- }>;
43
- abstract get defaultTemplates(): BeeAgentTemplates;
44
- get templates(): BeeAgentTemplates;
45
- protected abstract initMemory(input: BeeRunInput): Promise<BaseMemory>;
46
- createSnapshot(): {
47
- input: BeeInput;
48
- options: BeeRunOptions;
49
- memory: BaseMemory<unknown>;
50
- failedAttemptsCounter: RetryCounter;
51
- };
52
- loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void;
53
- }
54
-
55
- type BeeTemplateFactory<K extends keyof BeeAgentTemplates> = (template: BeeAgentTemplates[K]) => BeeAgentTemplates[K];
56
- interface BeeInput {
57
- llm: ChatModel;
58
- tools: AnyTool[];
59
- memory: BaseMemory;
60
- meta?: Omit<AgentMeta, "tools">;
61
- templates?: Partial<{
62
- [K in keyof BeeAgentTemplates]: BeeAgentTemplates[K] | BeeTemplateFactory<K>;
63
- }>;
64
- execution?: BeeAgentExecutionConfig;
65
- stream?: boolean;
66
- }
67
- declare class BeeAgent extends BaseAgent<BeeRunInput, BeeRunOutput, BeeRunOptions> {
68
- protected readonly input: BeeInput;
69
- readonly emitter: Emitter<BeeCallbacks>;
70
- protected runner: new (...args: ConstructorParameters<typeof BaseRunner>) => BaseRunner;
71
- constructor(input: BeeInput);
72
- set memory(memory: BaseMemory);
73
- get memory(): BaseMemory;
74
- get meta(): AgentMeta;
75
- protected _run(input: BeeRunInput, options: BeeRunOptions | undefined, run: GetRunContext<typeof this>): Promise<BeeRunOutput>;
76
- createSnapshot(): {
77
- input: BeeInput;
78
- emitter: Emitter<BeeCallbacks>;
79
- runner: new (input: BeeInput, options: BeeRunOptions, run: RunContext<BeeAgent, any>) => BaseRunner;
80
- isRunning: boolean;
81
- };
82
- }
83
-
84
- export { BaseRunner as B, type BeeRunnerLLMInput as a, type BeeRunnerToolInput as b, type BeeInput as c, BeeAgent as d, type BeeTemplateFactory as e };