{"version":3,"sources":["../../../../../src/agents/bee/runners/default/runner.spec.ts"],"names":["vi","mock","UnconstrainedMemory","TokenMemory","describe","beforeEach","useRealTimers","it","useFakeTimers","setSystemTime","Date","createMemory","memory","addMany","BaseMessage","of","role","Role","USER","text","ASSISTANT","createInstance","prompt","instance","DefaultRunner","llm","expect","any","Function","tools","templates","RunContext","init","memory2","add","meta","createdAt","instance2","messages","toEqual","each","BeeUserPrompt","fork","old","functions","formatMeta","template","user","a","b","zip","filter","msg","render","input","undefined","toStrictEqual"],"mappings":"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","file":"runner.spec.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 { DefaultRunner } from \"@/agents/bee/runners/default/runner.js\";\nimport { UnconstrainedMemory } from \"@/memory/unconstrainedMemory.js\";\nimport { BaseMessage, Role } from \"@/llms/primitives/message.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { BeeUserPrompt } from \"@/agents/bee/prompts.js\";\nimport { zip } from \"remeda\";\nimport { RunContext } from \"@/context.js\";\nimport { BeeAgent } from \"@/agents/bee/agent.js\";\n\nvi.mock(\"@/memory/tokenMemory.js\", async () => {\n  const { UnconstrainedMemory } = await import(\"@/memory/unconstrainedMemory.js\");\n  class TokenMemory extends UnconstrainedMemory {}\n  return { TokenMemory };\n});\n\nvi.mock(\"@/context.js\");\n\ndescribe(\"Bee Agent Runner\", () => {\n  beforeEach(() => {\n    vi.useRealTimers();\n  });\n\n  it(\"Handles different prompt input source\", async () => {\n    vi.useFakeTimers();\n    vi.setSystemTime(new Date(\"2024-09-10T19:51:46.954Z\"));\n\n    const createMemory = async () => {\n      const memory = new UnconstrainedMemory();\n      await memory.addMany([\n        BaseMessage.of({\n          role: Role.USER,\n          text: \"What is your name?\",\n        }),\n        BaseMessage.of({\n          role: Role.ASSISTANT,\n          text: \"I am Bee\",\n        }),\n      ]);\n      return memory;\n    };\n\n    const createInstance = async (memory: BaseMemory, prompt: string | null) => {\n      const instance = new DefaultRunner(\n        {\n          llm: expect.any(Function),\n          memory,\n          tools: [],\n          templates: {},\n        },\n        {},\n        new RunContext<BeeAgent, any>({} as any, {} as any),\n      );\n      await instance.init({ prompt });\n      return instance;\n    };\n\n    const memory = await createMemory();\n    const prompt = \"What can you do for me?\";\n    const instance = await createInstance(memory, prompt);\n\n    const memory2 = await createMemory();\n    await memory2.add(\n      BaseMessage.of({ role: Role.USER, text: prompt, meta: { createdAt: new Date() } }),\n    );\n    const instance2 = await createInstance(memory2, null);\n    expect(instance.memory.messages).toEqual(instance2.memory.messages);\n  });\n\n  it.each([\n    BeeUserPrompt.fork((old) => ({\n      ...old,\n      functions: { ...old.functions, formatMeta: () => \"\" },\n    })),\n    BeeUserPrompt.fork((old) => ({ ...old, template: `{{input}}` })),\n    BeeUserPrompt.fork((old) => ({ ...old, template: `User: {{input}}` })),\n    BeeUserPrompt.fork((old) => ({ ...old, template: `` })),\n  ])(\"Correctly formats user input\", async (template: typeof BeeUserPrompt) => {\n    const memory = new UnconstrainedMemory();\n    await memory.addMany([\n      BaseMessage.of({\n        role: Role.USER,\n        text: \"What is your name?\",\n      }),\n      BaseMessage.of({\n        role: Role.ASSISTANT,\n        text: \"Bee\",\n      }),\n      BaseMessage.of({\n        role: Role.USER,\n        text: \"Who are you?\",\n      }),\n      BaseMessage.of({\n        role: Role.ASSISTANT,\n        text: \"I am a helpful assistant.\",\n      }),\n    ]);\n\n    const prompt = \"What can you do for me?\";\n    const instance = new DefaultRunner(\n      {\n        llm: expect.any(Function),\n        memory,\n        tools: [],\n        templates: {\n          user: template,\n        },\n      },\n      {},\n      new RunContext<BeeAgent, any>({} as any, {} as any),\n    );\n    await instance.init({ prompt });\n\n    for (const [a, b] of zip(\n      [\n        ...memory.messages.filter((msg) => msg.role === Role.USER),\n        BaseMessage.of({ role: Role.USER, text: prompt }),\n      ],\n      instance.memory.messages.filter((msg) => msg.role === Role.USER),\n    )) {\n      expect(template.render({ input: a.text, meta: undefined })).toStrictEqual(b.text);\n    }\n  });\n});\n"]}