UNPKG

genkit

Version:

Genkit AI framework

1 lines 3.67 kB
{"version":3,"sources":["../src/plugin.ts"],"sourcesContent":["/**\n * Copyright 2024 Google LLC\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 type { Action, ActionMetadata, BackgroundAction } from '@genkit-ai/core';\nimport type { Genkit } from './genkit.js';\nimport type { ActionType } from './registry.js';\nexport { embedder, embedderActionMetadata } from '@genkit-ai/ai/embedder';\nexport { evaluator } from '@genkit-ai/ai/evaluator';\nexport {\n backgroundModel,\n model,\n modelActionMetadata,\n} from '@genkit-ai/ai/model';\nexport { reranker } from '@genkit-ai/ai/reranker';\nexport { indexer, retriever } from '@genkit-ai/ai/retriever';\n\nexport interface PluginProvider {\n name: string;\n initializer: () => void | Promise<void>;\n resolver?: (action: ActionType, target: string) => Promise<void>;\n listActions?: () => Promise<ActionMetadata[]>;\n}\n\nexport type ResolvableAction = Action | BackgroundAction;\n\nexport interface GenkitPluginV2 {\n version: 'v2';\n name: string;\n init?: () => ResolvableAction[] | Promise<ResolvableAction[]>;\n resolve?: (\n actionType: ActionType,\n name: string\n ) => ResolvableAction | undefined | Promise<ResolvableAction | undefined>;\n list?: () => ActionMetadata[] | Promise<ActionMetadata[]>;\n}\n\nexport type GenkitPlugin = (genkit: Genkit) => PluginProvider;\n\nexport type PluginInit = (genkit: Genkit) => void | Promise<void>;\n\nexport type PluginActionResolver = (\n genkit: Genkit,\n action: ActionType,\n target: string\n) => Promise<void>;\n\n/**\n * Defines a Genkit plugin.\n */\nexport function genkitPlugin<T extends PluginInit>(\n pluginName: string,\n initFn: T,\n resolveFn?: PluginActionResolver,\n listActionsFn?: () => Promise<ActionMetadata[]>\n): GenkitPlugin {\n return (genkit: Genkit) => ({\n name: pluginName,\n initializer: async () => {\n await initFn(genkit);\n },\n resolver: async (action: ActionType, target: string): Promise<void> => {\n if (resolveFn) {\n return await resolveFn(genkit, action, target);\n }\n },\n listActions: async (): Promise<ActionMetadata[]> => {\n if (listActionsFn) {\n return await listActionsFn();\n }\n return [];\n },\n });\n}\n\nexport function genkitPluginV2(\n options: Omit<GenkitPluginV2, 'version'>\n): GenkitPluginV2 {\n return { ...options, version: 'v2' };\n}\n\nexport function isPluginV2(plugin: unknown): plugin is GenkitPluginV2 {\n return (plugin as GenkitPluginV2).version === 'v2';\n}\n"],"mappings":"AAmBA,SAAS,UAAU,8BAA8B;AACjD,SAAS,iBAAiB;AAC1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,gBAAgB;AACzB,SAAS,SAAS,iBAAiB;AAmC5B,SAAS,aACd,YACA,QACA,WACA,eACc;AACd,SAAO,CAAC,YAAoB;AAAA,IAC1B,MAAM;AAAA,IACN,aAAa,YAAY;AACvB,YAAM,OAAO,MAAM;AAAA,IACrB;AAAA,IACA,UAAU,OAAO,QAAoB,WAAkC;AACrE,UAAI,WAAW;AACb,eAAO,MAAM,UAAU,QAAQ,QAAQ,MAAM;AAAA,MAC/C;AAAA,IACF;AAAA,IACA,aAAa,YAAuC;AAClD,UAAI,eAAe;AACjB,eAAO,MAAM,cAAc;AAAA,MAC7B;AACA,aAAO,CAAC;AAAA,IACV;AAAA,EACF;AACF;AAEO,SAAS,eACd,SACgB;AAChB,SAAO,EAAE,GAAG,SAAS,SAAS,KAAK;AACrC;AAEO,SAAS,WAAW,QAA2C;AACpE,SAAQ,OAA0B,YAAY;AAChD;","names":[]}