MCP Terminal Server

/** * Copyright 2024 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { describe, expect, it } from '@jest/globals'; import { MessageData } from '../../src/types/model'; import { PromptFrontmatter } from '../../src/types/prompt'; import { fromMessages } from '../../src/utils/prompt'; describe('fromMessages', () => { it('builds a template from messages', () => { const frontmatter: PromptFrontmatter = { name: 'my-prompt', model: 'googleai/gemini-pro', config: { temperature: 0.5, }, }; const messages: MessageData[] = [ { role: 'user', content: [{ text: 'Who are you?' }] }, { role: 'model', content: [ { text: 'I am Oz -- the Great and Powerful.' }, { media: { url: 'https://example.com/image.jpg' } }, ], }, ]; const expected = '---\n' + 'name: my-prompt\n' + 'model: googleai/gemini-pro\n' + 'config:\n' + ' temperature: 0.5\n' + '\n' + '---\n' + '\n' + '{{role "user"}}\n' + 'Who are you?\n' + '\n' + '{{role "model"}}\n' + 'I am Oz -- the Great and Powerful.,' + '{{media url:https://example.com/image.jpg}}\n' + '\n'; expect(fromMessages(frontmatter, messages)).toStrictEqual(expected); }); });