diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
new file mode 100644
index 000000000..586bfebaf
--- /dev/null
+++ b/.devcontainer/devcontainer.json
@@ -0,0 +1,6 @@
+{
+ "image": "mcr.microsoft.com/devcontainers/universal:2",
+ "features" : {
+ }
+}
+
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index 77e35085e..d50a2f6df 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -2,5 +2,4 @@ Description here...
Checklist (if applicable):
- [ ] Tested (manually, unit tested, etc.)
-- [ ] Changelog updated
- [ ] Docs updated
diff --git a/.gitignore b/.gitignore
index 2862b8731..75ce9fff1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,6 +23,7 @@ js/testapps/firebase-functions-sample1/public/config.js
ui-debug.log
firebase-debug.log
**/*.env
+.genkit
# RAG sample files
!js/testapps/rag/package.json
js/testapps/rag/*.json
diff --git a/docs/get-started.md b/docs/get-started.md
index 0b7c02b89..ead5745fb 100644
--- a/docs/get-started.md
+++ b/docs/get-started.md
@@ -1,189 +1,74 @@
# Get started
-To get started with Firebase Genkit, install the Genkit CLI and run
-`genkit init` in a Node.js project. The rest of this page shows you how.
+This guide shows you how to get started with Genkit in a Node.js app.
-## Requirements
+## Prerequisites
-Node.js 20 or later.
+This guide assumes that you're familiar with building applications with Node.js.
-Recommendation: The [`nvm`](https://github.com/nvm-sh/nvm) and
-[`nvm-windows`](https://github.com/coreybutler/nvm-windows) tools are a
-convenient way to install Node.
+To complete this quickstart, make sure that your development environment meets the following requirements:
-## Install Genkit {:#install}
+* Node.js v20+
+* npm
-Install the Genkit CLI by running the following command:
+## Install Genkit dependencies
-```posix-terminal
-npm i -g genkit
-```
-
-This command installs the Genkit CLI into your Node installation directory
-so that it can be used outside of a Node project.
+Install the following Genkit dependencies to use Genkit in your project:
-## Create and explore a sample project {:#explore}
+* `@genkit-ai/ai` and `@genkit-ai/core` provide Genkit core capabilities.
+* `@genkit-ai/googleai` provide access to the Google AI Gemini models.
+* `genkit` provides the Genkit CLI and tooling to help you test and debug your solution later.
-1. Create a new Node project:
+```posix-terminal
+npm install @genkit-ai/ai @genkit-ai/core @genkit-ai/googleai
- ```posix-terminal
- mkdir genkit-intro && cd genkit-intro
+npm install -g genkit
+```
- npm init -y
- ```
+## Configure your model API key
- Look at package.json and make sure the `main` field is set to
- `lib/index.js`.
+For this guide, we’ll show you how to use the Gemini API which provides a generous free tier and does not require a credit card to get started. To use the Gemini API, you'll need an API key. If you don't already have one, create a key in Google AI Studio.
-1. Initialize a Genkit project:
+Get an API key from Google AI Studio
- ```posix-terminal
- genkit init
- ```
-
- 1. Select your model:
-
- - {Gemini (Google AI)}
-
- The simplest way to get started is with Google AI Gemini API. Make sure
- it's
- [available in your region](https://ai.google.dev/available_regions).
-
- [Generate an API key](https://aistudio.google.com/app/apikey) for the
- Gemini API using Google AI Studio. Then, set the `GOOGLE_GENAI_API_KEY`
- environment variable to your key:
-
- ```posix-terminal
- export GOOGLE_GENAI_API_KEY=
- ```
+After you’ve created an API key, set the `GOOGLE_GENAI_API_KEY` environment variable to your key with the following command:
- - {Gemini (Vertex AI)}
-
- If the Google AI Gemini API is not available in your region, consider
- using the Vertex AI API which also offers Gemini and other models. You
- will need to have a billing-enabled Google Cloud project, enable AI
- Platform API, and set some additional environment variables:
-
- ```posix-terminal
- gcloud services enable aiplatform.googleapis.com
-
- export GCLOUD_PROJECT=
+```
+export GOOGLE_GENAI_API_KEY=
+```
- export GCLOUD_LOCATION=us-central1
- ```
+Note: While this tutorial uses the Gemini API from AI Studio, Genkit supports a wide variety of model providers including [Gemini from Vertex AI](https://firebase.google.com/docs/genkit/plugins/vertex-ai#generative_ai_models), Anthropic’s Claude 3 models and Llama 3.1 through the [Vertex AI Model Garden](https://firebase.google.com/docs/genkit/plugins/vertex-ai#anthropic_claude_3_on_vertex_ai_model_garden), open source models through [Ollama](https://firebase.google.com/docs/genkit/plugins/ollama), and several other [community-supported providers](https://firebase.google.com/docs/genkit/models#models-supported) like OpenAI and Cohere.
- See https://cloud.google.com/vertex-ai/generative-ai/pricing for Vertex AI pricing.
-
- 1. Choose default answers to the rest of the questions, which will
- initialize your project folder with some sample code.
+## Import the library
- The `genkit init` command creates a sample source file, `index.ts`, which
- defines a single flow, `menuSuggestionFlow`, that prompts an LLM to suggest
- an item for a restaurant with a given theme.
+Import the Genkit core libraries and the plugin for the Google AI Gemini APIs.
- This file looks something like the following (the plugin configuration steps
- might look different if you selected Vertex AI):
+```javascript
+import { generate } from '@genkit-ai/ai';
+import { configureGenkit } from '@genkit-ai/core';
+import { googleAI, gemini15Flash } from '@genkit-ai/googleai';
+```
- ```ts
- import * as z from 'zod';
+## Make your first request
- // Import the Genkit core libraries and plugins.
- import { generate } from '@genkit-ai/ai';
- import { configureGenkit } from '@genkit-ai/core';
- import { defineFlow, startFlowsServer } from '@genkit-ai/flow';
- import { googleAI } from '@genkit-ai/googleai';
+Use the `generate` method to generate a text response.
- // Import models from the Google AI plugin. The Google AI API provides access to
- // several generative models. Here, we import Gemini 1.5 Flash.
- import { gemini15Flash } from '@genkit-ai/googleai';
+```javascript
+configureGenkit({ plugins: [googleAI()] });
- configureGenkit({
- plugins: [
- // Load the Google AI plugin. You can optionally specify your API key
- // by passing in a config object; if you don't, the Google AI plugin uses
- // the value from the GOOGLE_GENAI_API_KEY environment variable, which is
- // the recommended practice.
- googleAI(),
- ],
- // Log debug output to tbe console.
- logLevel: 'debug',
- // Perform OpenTelemetry instrumentation and enable trace collection.
- enableTracingAndMetrics: true,
- });
+const result = await generate({
+ model: gemini15Flash,
+ prompt: 'Tell me a heroic story about a software developer.',
+});
- // Define a simple flow that prompts an LLM to generate menu suggestions.
- export const menuSuggestionFlow = defineFlow(
- {
- name: 'menuSuggestionFlow',
- inputSchema: z.string(),
- outputSchema: z.string(),
- },
- async (subject) => {
- // Construct a request and send it to the model API.
- const llmResponse = await generate({
- prompt: `Suggest an item for the menu of a ${subject} themed restaurant`,
- model: gemini15Flash,
- config: {
- temperature: 1,
- },
- });
-
- // Handle the response from the model API. In this sample, we just convert
- // it to a string, but more complicated flows might coerce the response into
- // structured output or chain the response into another LLM call, etc.
- return llmResponse.text();
- }
- );
-
- // Start a flow server, which exposes your flows as HTTP endpoints. This call
- // must come last, after all of your plug-in configuration and flow definitions.
- // You can optionally specify a subset of flows to serve, and configure some
- // HTTP server options, but by default, the flow server serves all defined flows.
- startFlowsServer();
- ```
-
- As you build out your app's AI features with Genkit, you will likely
- create flows with multiple steps such as input preprocessing, more
- sophisticated prompt construction, integrating external information
- sources for retrieval-augmented generation (RAG), and more.
-
-1. Now you can run and explore Genkit features and the sample project locally
- on your machine. Download and start the Genkit Developer UI:
-
- ```posix-terminal
- genkit start
- ```
-
-
-
- The Genkit Developer UI is now running on your machine. When you run models
- or flows in the next step, your machine will perform the orchestration tasks
- needed to get the steps of your flow working together; calls to external
- services such as the Gemini API will continue to be made against live
- servers.
-
- Also, because you are in a dev environment, Genkit will store traces and
- flow state in local files.
-
-1. The Genkit Developer UI downloads and opens automatically when you run the
- `genkit start` command.
-
- The Developer UI lets you see which flows you have defined and models you
- configured, run them, and examine traces of previous runs. Try out some of
- these features:
-
- - On the **Run** tab, you will see a list of all of the flows that you have
- defined and any models that have been configured by plugins.
-
- Click **menuSuggestionFlow** and try running it with some input text (for example,
- `"cat"`). If all goes well, you'll be rewarded with a menu suggestion for a cat
- themed restaurant.
-
- - On the **Inspect** tab, you'll see a history of flow executions. For each
- flow, you can see the parameters that were passed to the flow and a
- trace of each step as they ran.
+console.log(result.text())
+```
## Next steps
-Check out how to build and deploy your Genkit app with [Firebase](firebase.md),
-[Cloud Run](cloud-run.md), or any [Node.js platform](deploy-node.md).
+Now that you’re set up to make model requests with Genkit, learn how to use more Genkit capabilities to build your AI-powered apps and workflows. To get started with additional Genkit capabilities, see the following guides:
+
+* [Developer tools](docs/genkit/devtools): Learn how to set up and use Genkit’s CLI and developer UI to help you locally test and debug your app.
+* [Generating content](/docs/genkit/models): Learn how to use Genkit’s unified generation API to generate text and structured data from any supported model.
+* [Creating flows](docs/genkit/flows): Learn how to use special Genkit functions, called flows, that provide end-to-end observability for workflows and rich debugging from Genkit tooling.
+* [Prompting models](/docs/genkit/prompts): Learn how Genkit lets you treat prompt templates as functions, encapsulating model configurations and input/output schema.
\ No newline at end of file
diff --git a/docs/index.md b/docs/index.md
index a7351a5b6..e3e72f53f 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -56,7 +56,7 @@ See the following code samples for a concrete idea of how to use these capabilit
- {Basic generation}
```javascript
- import { generate } from `@genkit-ai/ai`;
+ import { generate } from '@genkit-ai/ai';
import { gemini15Flash, claude3Sonnet, llama31 } from '@genkit-ai/vertexai';
import { gpt4o } from 'genkitx-openai';
@@ -70,9 +70,9 @@ See the following code samples for a concrete idea of how to use these capabilit
- {Structured generation}
```javascript
- import { generate } from `@genkit-ai/ai`;
- import { gemini15Flash } from `@genkit-ai/googleai`;
- import { z } from `zod`;
+ import { generate } from '@genkit-ai/ai';
+ import { gemini15Flash } from '@genkit-ai/googleai';
+ import { z } from 'zod';
const result = await generate({
model: gemini15Flash,
@@ -95,9 +95,9 @@ See the following code samples for a concrete idea of how to use these capabilit
- {Tool calling}
```javascript
- import { generate, defineTool } from `@genkit-ai/ai`;
- import { gemini15Flash } from `@genkit-ai/googleai`;
- import { z } from `zod`;
+ import { generate, defineTool } from '@genkit-ai/ai';
+ import { gemini15Flash } from '@genkit-ai/googleai';
+ import { z } from 'zod';
// Define tool to get weather data for a given location
const lookupWeather = defineTool({
@@ -126,9 +126,9 @@ See the following code samples for a concrete idea of how to use these capabilit
- {Retrieval}
```javascript
- import { generate, retrieve } from `@genkit-ai/ai`;
+ import { generate, retrieve } from '@genkit-ai/ai';
import { devLocalRetrieverRef } from '@genkit-ai/dev-local-vectorstore';
- import { gemini15Flash } from `@genkit-ai/googleai`;
+ import { gemini15Flash } from '@genkit-ai/googleai';
// Sample assumes Genkit documentation has been chunked, stored, and indexed in
// local vectorstore in previous step.
diff --git a/docs/monitoring.md b/docs/monitoring.md
index 591daafe3..0e288c2ac 100644
--- a/docs/monitoring.md
+++ b/docs/monitoring.md
@@ -31,7 +31,7 @@ want to enable TTL for the trace documents:
https://firebase.google.com/docs/firestore/ttl
```ts
-import { firebase } from '@genkit-ai/plugin-firebase';
+import { firebase } from '@genkit-ai/firebase';
configureGenkit({
plugins: [firebase()],
diff --git a/docs/nextjs.md b/docs/nextjs.md
index 9547e6f4b..5245838ec 100644
--- a/docs/nextjs.md
+++ b/docs/nextjs.md
@@ -127,21 +127,23 @@ Node.js 20 or later.
import { useState } from 'react';
export default function Home() {
- const [menuItem, setMenu] = useState('');
+ const [menuItem, setMenuItem] = useState('');
async function getMenuItem(formData: FormData) {
const theme = formData.get('theme')?.toString() ?? '';
const suggestion = await callMenuSuggestionFlow(theme);
- setMenu(suggestion);
+ setMenuItem(suggestion);
}
return (
diff --git a/docs/plugins/ollama.md b/docs/plugins/ollama.md
index 8e0a85aa2..b6606bdc4 100644
--- a/docs/plugins/ollama.md
+++ b/docs/plugins/ollama.md
@@ -66,39 +66,49 @@ import { GoogleAuth } from 'google-auth-library';
import { ollama, OllamaPluginParams } from 'genkitx-ollama';
import { configureGenkit, isDevEnv } from '@genkit-ai/core';
-const ollamaCommon = {models: [{name: "gemma:2b"}]};
+const ollamaCommon = { models: [{ name: 'gemma:2b' }] };
+
const ollamaDev = {
...ollamaCommon,
serverAddress: 'http://127.0.0.1:11434',
} as OllamaPluginParams;
+
const ollamaProd = {
...ollamaCommon,
serverAddress: 'https://my-deployment',
- requestHeaders: async (params) => ({
- Authorization: `Bearer ${await getIdToken(params.serverAddress)}`,
- }),
+ requestHeaders: async (params) => {
+ const headers = await fetchWithAuthHeader(params.serverAddress);
+ return { Authorization: headers['Authorization'] };
+ },
} as OllamaPluginParams;
export default configureGenkit({
plugins: [
- ollama(isDevEnv() ? ollamaDev: ollamaProd),
+ ollama(isDevEnv() ? ollamaDev : ollamaProd),
],
});
-export async function getIdToken(url: string): Promise {
- const auth = getAuthClient();
- const client = await auth.getIdTokenClient(url);
- return client.idTokenProvider.fetchIdToken(url);
-}
-
+// Function to lazily load GoogleAuth client
let auth: GoogleAuth;
function getAuthClient() {
- // Lazy load GoogleAuth client.
if (!auth) {
auth = new GoogleAuth();
}
return auth;
}
+
+// Function to fetch headers, reusing tokens when possible
+async function fetchWithAuthHeader(url: string) {
+ const client = await getIdTokenClient(url);
+ const headers = await client.getRequestHeaders(url); // Auto-manages token refresh
+ return headers;
+}
+
+async function getIdTokenClient(url: string) {
+ const auth = getAuthClient();
+ const client = await auth.getIdTokenClient(url);
+ return client;
+}
```
## Usage
diff --git a/docs/plugins/vertex-ai.md b/docs/plugins/vertex-ai.md
index 30da54b31..be13edf8c 100644
--- a/docs/plugins/vertex-ai.md
+++ b/docs/plugins/vertex-ai.md
@@ -4,7 +4,7 @@ The Vertex AI plugin provides interfaces to several AI services:
- [Google generative AI models](https://cloud.google.com/vertex-ai/generative-ai/docs/):
- Gemini text generation
- - Imagen2 image generation
+ - Imagen2 and Imagen3 image generation
- Text embedding generation
- A subset of evaluation metrics through the Vertex AI [Rapid Evaluation API](https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/evaluation):
- [BLEU](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations/evaluateInstances#bleuinput)
@@ -157,6 +157,20 @@ const embedding = await embed({
});
```
+Imagen3 model allows generating images from user prompt:
+
+```js
+import { imagen3 } from '@genkit-ai/vertexai';
+
+const response = await generate({
+ model: imagen3,
+ output: { format: 'media' },
+ prompt: 'a banana riding a bicycle',
+});
+
+return response.media();
+```
+
#### Anthropic Claude 3 on Vertex AI Model Garden
If you have access to Claude 3 models ([haiku](https://console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-3-haiku), [sonnet](https://console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-3-sonnet) or [opus](https://console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-3-opus)) in Vertex AI Model Garden you can use them with Genkit.
diff --git a/genkit-tools/cli/package.json b/genkit-tools/cli/package.json
index 33de6cbd2..0950d325b 100644
--- a/genkit-tools/cli/package.json
+++ b/genkit-tools/cli/package.json
@@ -1,7 +1,7 @@
{
"name": "genkit",
- "version": "0.5.13",
- "description": "CLI for interacting with the Google GenKit AI framework",
+ "version": "0.5.17",
+ "description": "CLI for interacting with the Google Genkit AI framework",
"license": "Apache-2.0",
"keywords": [
"genkit",
diff --git a/genkit-tools/cli/src/commands/init/init-go.ts b/genkit-tools/cli/src/commands/init/init-go.ts
index 03d276efe..33edaca42 100644
--- a/genkit-tools/cli/src/commands/init/init-go.ts
+++ b/genkit-tools/cli/src/commands/init/init-go.ts
@@ -191,7 +191,7 @@ export async function initGo(options: InitOptions, isNew: boolean) {
function installPackages(packages: string[]) {
const spinner = ora('Installing Go packages').start();
try {
- execSync(`go get ${packages.map((p) => p + '@latest').join(' ')}`, {
+ execSync(`go get ${packages.map((p) => p + '@v0.1').join(' ')}`, {
stdio: 'ignore',
});
spinner.succeed('Successfully installed Go packages');
diff --git a/genkit-tools/cli/src/commands/init/init-nodejs.ts b/genkit-tools/cli/src/commands/init/init-nodejs.ts
index e80214834..483985be3 100644
--- a/genkit-tools/cli/src/commands/init/init-nodejs.ts
+++ b/genkit-tools/cli/src/commands/init/init-nodejs.ts
@@ -240,8 +240,8 @@ export async function initNodejs(options: InitOptions, isNew: boolean) {
// Compile NPM packages list.
const packages = [...externalPackages];
if (!distArchive) {
- packages.push(...internalPackages);
- packages.push(...plugins);
+ packages.push(...internalPackages.map((p) => `${p}@^0.5`));
+ packages.push(...plugins.map((p) => `${p}@^0.5`));
}
// Initialize and configure.
diff --git a/genkit-tools/common/package.json b/genkit-tools/common/package.json
index dca8ec9b5..f90792da8 100644
--- a/genkit-tools/common/package.json
+++ b/genkit-tools/common/package.json
@@ -1,9 +1,9 @@
{
"name": "@genkit-ai/tools-common",
- "version": "0.5.13",
+ "version": "0.5.17",
"scripts": {
"compile": "tsc -b ./tsconfig.cjs.json ./tsconfig.esm.json ./tsconfig.types.json",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build": "npm-run-all build:clean compile",
"test": "jest --verbose",
"build:watch": "tsc -b ./tsconfig.cjs.json ./tsconfig.esm.json ./tsconfig.types.json --watch"
@@ -12,13 +12,13 @@
"@asteasolutions/zod-to-openapi": "^7.0.0",
"@trpc/server": "10.45.0",
"adm-zip": "^0.5.12",
- "axios": "^1.6.7",
- "body-parser": "^1.20.2",
+ "axios": "^1.7.7",
+ "body-parser": "^1.20.3",
"chokidar": "^3.5.3",
"colorette": "^2.0.20",
"commander": "^11.1.0",
"configstore": "^5.0.1",
- "express": "^4.18.2",
+ "express": "^4.21.0",
"get-port": "5.1.1",
"glob": "^10.3.12",
"inquirer": "^8.2.0",
@@ -50,7 +50,8 @@
"genversion": "^3.2.0",
"npm-run-all": "^4.1.5",
"ts-node": "^10.9.2",
- "typescript": "^5.3.3"
+ "typescript": "^5.3.3",
+ "rimraf": "^6.0.1"
},
"repository": {
"type": "git",
diff --git a/genkit-tools/package.json b/genkit-tools/package.json
index a4ed19dac..f796c0796 100644
--- a/genkit-tools/package.json
+++ b/genkit-tools/package.json
@@ -20,5 +20,5 @@
"zod": "^3.22.4",
"zod-to-json-schema": "^3.22.4"
},
- "packageManager": "pnpm@9.10.0+sha256.355a8ab8dbb6ad41befbef39bc4fd6b5df85e12761d2724bd01f13e878de4b13"
+ "packageManager": "pnpm@9.12.0+sha256.a61b67ff6cc97af864564f4442556c22a04f2e5a7714fbee76a1011361d9b726"
}
diff --git a/genkit-tools/plugins/firebase/package.json b/genkit-tools/plugins/firebase/package.json
index bb072e05f..d779964bf 100644
--- a/genkit-tools/plugins/firebase/package.json
+++ b/genkit-tools/plugins/firebase/package.json
@@ -3,7 +3,7 @@
"version": "0.5.10",
"scripts": {
"compile": "tsc -b ./tsconfig.cjs.json ./tsconfig.esm.json ./tsconfig.types.json",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build": "npm-run-all build:clean compile",
"build:watch": "tsc -b ./tsconfig.cjs.json ./tsconfig.esm.json ./tsconfig.types.json --watch"
},
@@ -11,7 +11,8 @@
"@genkit-ai/tools-common": "workspace:*",
"@types/node": "^20.11.19",
"npm-run-all": "^4.1.5",
- "typescript": "^4.9.0"
+ "typescript": "^4.9.0",
+ "rimraf": "^6.0.1"
},
"types": "lib/types/index.d.ts",
"exports": {
diff --git a/genkit-tools/plugins/google/package.json b/genkit-tools/plugins/google/package.json
index d9ae1825e..7876d43a4 100644
--- a/genkit-tools/plugins/google/package.json
+++ b/genkit-tools/plugins/google/package.json
@@ -3,7 +3,7 @@
"version": "0.5.10",
"scripts": {
"compile": "tsc -b ./tsconfig.cjs.json ./tsconfig.esm.json ./tsconfig.types.json",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build": "npm-run-all build:clean compile",
"build:watch": "tsc -b ./tsconfig.cjs.json ./tsconfig.esm.json ./tsconfig.types.json --watch"
},
@@ -11,7 +11,8 @@
"@genkit-ai/tools-common": "workspace:*",
"@types/node": "^20.11.19",
"npm-run-all": "^4.1.5",
- "typescript": "^4.9.0"
+ "typescript": "^4.9.0",
+ "rimraf": "^6.0.1"
},
"types": "lib/types/index.d.ts",
"exports": {
diff --git a/genkit-tools/pnpm-lock.yaml b/genkit-tools/pnpm-lock.yaml
index 2672e59bf..337031906 100644
--- a/genkit-tools/pnpm-lock.yaml
+++ b/genkit-tools/pnpm-lock.yaml
@@ -82,11 +82,11 @@ importers:
specifier: ^0.5.12
version: 0.5.12
axios:
- specifier: ^1.6.7
- version: 1.6.8
+ specifier: ^1.7.7
+ version: 1.7.7
body-parser:
- specifier: ^1.20.2
- version: 1.20.2
+ specifier: ^1.20.3
+ version: 1.20.3
chokidar:
specifier: ^3.5.3
version: 3.6.0
@@ -100,8 +100,8 @@ importers:
specifier: ^5.0.1
version: 5.0.1
express:
- specifier: ^4.18.2
- version: 4.19.2
+ specifier: ^4.21.0
+ version: 4.21.0
get-port:
specifier: 5.1.1
version: 5.1.1
@@ -184,6 +184,9 @@ importers:
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
ts-jest:
specifier: ^29.1.2
version: 29.1.2(@babel/core@7.24.5)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.5))(jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5)
@@ -209,6 +212,9 @@ importers:
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
typescript:
specifier: ^4.9.0
version: 4.9.5
@@ -228,6 +234,9 @@ importers:
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
typescript:
specifier: ^4.9.0
version: 4.9.5
@@ -861,8 +870,8 @@ packages:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
- axios@1.6.8:
- resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==}
+ axios@1.7.7:
+ resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==}
babel-jest@29.7.0:
resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
@@ -902,8 +911,8 @@ packages:
bl@4.1.0:
resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
- body-parser@1.20.2:
- resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==}
+ body-parser@1.20.3:
+ resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
brace-expansion@1.1.11:
@@ -1217,6 +1226,10 @@ packages:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
engines: {node: '>= 0.8'}
+ encodeurl@2.0.0:
+ resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
+ engines: {node: '>= 0.8'}
+
end-of-stream@1.4.4:
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
@@ -1291,8 +1304,8 @@ packages:
resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- express@4.19.2:
- resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==}
+ express@4.21.0:
+ resolution: {integrity: sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==}
engines: {node: '>= 0.10.0'}
external-editor@3.1.0:
@@ -1327,8 +1340,8 @@ packages:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
- finalhandler@1.2.0:
- resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
+ finalhandler@1.3.1:
+ resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==}
engines: {node: '>= 0.8'}
find-package@1.0.0:
@@ -1439,8 +1452,14 @@ packages:
engines: {node: '>=16 || 14 >=14.17'}
hasBin: true
+ glob@11.0.0:
+ resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==}
+ engines: {node: 20 || >=22}
+ hasBin: true
+
glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ deprecated: Glob versions prior to v9 are no longer supported
globals@11.12.0:
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
@@ -1518,6 +1537,7 @@ packages:
inflight@1.0.6:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
@@ -1678,6 +1698,10 @@ packages:
resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
engines: {node: '>=14'}
+ jackspeak@4.0.2:
+ resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==}
+ engines: {node: 20 || >=22}
+
jake@10.8.7:
resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==}
engines: {node: '>=10'}
@@ -1886,6 +1910,10 @@ packages:
resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==}
engines: {node: 14 || >=16.14}
+ lru-cache@11.0.1:
+ resolution: {integrity: sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==}
+ engines: {node: 20 || >=22}
+
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
@@ -1914,8 +1942,8 @@ packages:
resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==}
engines: {node: '>= 0.10.0'}
- merge-descriptors@1.0.1:
- resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
+ merge-descriptors@1.0.3:
+ resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==}
merge-stream@2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
@@ -1945,6 +1973,10 @@ packages:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
engines: {node: '>=6'}
+ minimatch@10.0.1:
+ resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==}
+ engines: {node: 20 || >=22}
+
minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
@@ -1960,6 +1992,10 @@ packages:
resolution: {integrity: sha512-oGZRv2OT1lO2UF1zUcwdTb3wqUwI0kBGTgt/T7OdSj6M6N5m3o5uPf0AIW6lVxGGoiWUR7e2AwTE+xiwK8WQig==}
engines: {node: '>=16 || 14 >=14.17'}
+ minipass@7.1.2:
+ resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
ms@2.0.0:
resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
@@ -2064,6 +2100,9 @@ packages:
resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
engines: {node: '>=6'}
+ package-json-from-dist@1.0.1:
+ resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
+
parents@1.0.1:
resolution: {integrity: sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==}
@@ -2106,8 +2145,12 @@ packages:
resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==}
engines: {node: '>=16 || 14 >=14.17'}
- path-to-regexp@0.1.7:
- resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
+ path-scurry@2.0.0:
+ resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==}
+ engines: {node: 20 || >=22}
+
+ path-to-regexp@0.1.10:
+ resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==}
path-type@3.0.0:
resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==}
@@ -2173,8 +2216,8 @@ packages:
pure-rand@6.1.0:
resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
- qs@6.11.0:
- resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
+ qs@6.13.0:
+ resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
engines: {node: '>=0.6'}
range-parser@1.2.1:
@@ -2231,6 +2274,11 @@ packages:
resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
engines: {node: '>=8'}
+ rimraf@6.0.1:
+ resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==}
+ engines: {node: 20 || >=22}
+ hasBin: true
+
run-async@2.4.1:
resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
engines: {node: '>=0.12.0'}
@@ -2269,12 +2317,12 @@ packages:
engines: {node: '>=10'}
hasBin: true
- send@0.18.0:
- resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
+ send@0.19.0:
+ resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==}
engines: {node: '>= 0.8.0'}
- serve-static@1.15.0:
- resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
+ serve-static@1.16.2:
+ resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==}
engines: {node: '>= 0.8.0'}
set-function-length@1.2.2:
@@ -3413,7 +3461,7 @@ snapshots:
dependencies:
possible-typed-array-names: 1.0.0
- axios@1.6.8:
+ axios@1.7.7:
dependencies:
follow-redirects: 1.15.6
form-data: 4.0.0
@@ -3485,7 +3533,7 @@ snapshots:
inherits: 2.0.4
readable-stream: 3.6.2
- body-parser@1.20.2:
+ body-parser@1.20.3:
dependencies:
bytes: 3.1.2
content-type: 1.0.5
@@ -3495,7 +3543,7 @@ snapshots:
http-errors: 2.0.0
iconv-lite: 0.4.24
on-finished: 2.4.1
- qs: 6.11.0
+ qs: 6.13.0
raw-body: 2.5.2
type-is: 1.6.18
unpipe: 1.0.0
@@ -3789,6 +3837,8 @@ snapshots:
encodeurl@1.0.2: {}
+ encodeurl@2.0.0: {}
+
end-of-stream@1.4.4:
dependencies:
once: 1.4.0
@@ -3938,34 +3988,34 @@ snapshots:
jest-message-util: 29.7.0
jest-util: 29.7.0
- express@4.19.2:
+ express@4.21.0:
dependencies:
accepts: 1.3.8
array-flatten: 1.1.1
- body-parser: 1.20.2
+ body-parser: 1.20.3
content-disposition: 0.5.4
content-type: 1.0.5
cookie: 0.6.0
cookie-signature: 1.0.6
debug: 2.6.9
depd: 2.0.0
- encodeurl: 1.0.2
+ encodeurl: 2.0.0
escape-html: 1.0.3
etag: 1.8.1
- finalhandler: 1.2.0
+ finalhandler: 1.3.1
fresh: 0.5.2
http-errors: 2.0.0
- merge-descriptors: 1.0.1
+ merge-descriptors: 1.0.3
methods: 1.1.2
on-finished: 2.4.1
parseurl: 1.3.3
- path-to-regexp: 0.1.7
+ path-to-regexp: 0.1.10
proxy-addr: 2.0.7
- qs: 6.11.0
+ qs: 6.13.0
range-parser: 1.2.1
safe-buffer: 5.2.1
- send: 0.18.0
- serve-static: 1.15.0
+ send: 0.19.0
+ serve-static: 1.16.2
setprototypeof: 1.2.0
statuses: 2.0.1
type-is: 1.6.18
@@ -4014,10 +4064,10 @@ snapshots:
dependencies:
to-regex-range: 5.0.1
- finalhandler@1.2.0:
+ finalhandler@1.3.1:
dependencies:
debug: 2.6.9
- encodeurl: 1.0.2
+ encodeurl: 2.0.0
escape-html: 1.0.3
on-finished: 2.4.1
parseurl: 1.3.3
@@ -4126,6 +4176,15 @@ snapshots:
minipass: 7.1.0
path-scurry: 1.10.2
+ glob@11.0.0:
+ dependencies:
+ foreground-child: 3.1.1
+ jackspeak: 4.0.2
+ minimatch: 10.0.1
+ minipass: 7.1.2
+ package-json-from-dist: 1.0.1
+ path-scurry: 2.0.0
+
glob@7.2.3:
dependencies:
fs.realpath: 1.0.0
@@ -4371,6 +4430,10 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
+ jackspeak@4.0.2:
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+
jake@10.8.7:
dependencies:
async: 3.2.5
@@ -4752,6 +4815,8 @@ snapshots:
lru-cache@10.2.2: {}
+ lru-cache@11.0.1: {}
+
lru-cache@5.1.1:
dependencies:
yallist: 3.1.1
@@ -4776,7 +4841,7 @@ snapshots:
memorystream@0.3.1: {}
- merge-descriptors@1.0.1: {}
+ merge-descriptors@1.0.3: {}
merge-stream@2.0.0: {}
@@ -4797,6 +4862,10 @@ snapshots:
mimic-fn@2.1.0: {}
+ minimatch@10.0.1:
+ dependencies:
+ brace-expansion: 2.0.1
+
minimatch@3.1.2:
dependencies:
brace-expansion: 1.1.11
@@ -4811,6 +4880,8 @@ snapshots:
minipass@7.1.0: {}
+ minipass@7.1.2: {}
+
ms@2.0.0: {}
ms@2.1.2: {}
@@ -4921,6 +4992,8 @@ snapshots:
p-try@2.2.0: {}
+ package-json-from-dist@1.0.1: {}
+
parents@1.0.1:
dependencies:
path-platform: 0.11.15
@@ -4956,7 +5029,12 @@ snapshots:
lru-cache: 10.2.2
minipass: 7.1.0
- path-to-regexp@0.1.7: {}
+ path-scurry@2.0.0:
+ dependencies:
+ lru-cache: 11.0.1
+ minipass: 7.1.2
+
+ path-to-regexp@0.1.10: {}
path-type@3.0.0:
dependencies:
@@ -5013,7 +5091,7 @@ snapshots:
pure-rand@6.1.0: {}
- qs@6.11.0:
+ qs@6.13.0:
dependencies:
side-channel: 1.0.6
@@ -5074,6 +5152,11 @@ snapshots:
onetime: 5.1.2
signal-exit: 3.0.7
+ rimraf@6.0.1:
+ dependencies:
+ glob: 11.0.0
+ package-json-from-dist: 1.0.1
+
run-async@2.4.1: {}
rxjs@7.8.1:
@@ -5105,7 +5188,7 @@ snapshots:
semver@7.6.1: {}
- send@0.18.0:
+ send@0.19.0:
dependencies:
debug: 2.6.9
depd: 2.0.0
@@ -5123,12 +5206,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- serve-static@1.15.0:
+ serve-static@1.16.2:
dependencies:
- encodeurl: 1.0.2
+ encodeurl: 2.0.0
escape-html: 1.0.3
parseurl: 1.3.3
- send: 0.18.0
+ send: 0.19.0
transitivePeerDependencies:
- supports-color
diff --git a/go/genkit/flow.go b/go/genkit/flow.go
index 7f62ef024..b0f20bee8 100644
--- a/go/genkit/flow.go
+++ b/go/genkit/flow.go
@@ -22,6 +22,7 @@ import (
"fmt"
"log"
"net/http"
+ "reflect"
"strconv"
"sync"
"time"
@@ -476,6 +477,20 @@ func (f *Flow[In, Out, Stream]) start(ctx context.Context, input In, cb streamin
return state, nil
}
+func isInputMissing(input any) bool {
+ if input == nil {
+ return true
+ }
+ v := reflect.ValueOf(input)
+ switch v.Kind() {
+ case reflect.Ptr, reflect.Slice, reflect.Map, reflect.Interface, reflect.Chan, reflect.Func:
+ return v.IsNil()
+ default:
+ // For other types like structs, zero value might be a valid input.
+ return false
+ }
+}
+
// execute performs one flow execution.
// Using its flowState argument as a starting point, it runs the flow function until
// it finishes or is interrupted.
@@ -510,7 +525,22 @@ func (f *Flow[In, Out, Stream]) execute(ctx context.Context, state *flowState[In
traceID := rootSpanContext.TraceID().String()
exec.TraceIDs = append(exec.TraceIDs, traceID)
// TODO: Save rootSpanContext in the state.
- // TODO: If input is missing, get it from state.input and overwrite metadata.input.
+ if isInputMissing(input) {
+ if state == nil {
+ return base.Zero[Out](), errors.New("input is missing and state is nil")
+ }
+ if isInputMissing(state.Input) {
+ return base.Zero[Out](), errors.New("input is missing and state.Input is also empty")
+ }
+ input = state.Input
+
+ // Convert input to JSON string for tracing metadata
+ bytes, err := json.Marshal(input)
+ if err != nil {
+ return base.Zero[Out](), fmt.Errorf("failed to marshal input for tracing: %w", err)
+ }
+ tracing.SetCustomMetadataAttr(ctx, "input", string(bytes))
+ }
start := time.Now()
var err error
if err = base.ValidateValue(input, f.inputSchema); err != nil {
diff --git a/go/plugins/dotprompt/genkit.go b/go/plugins/dotprompt/genkit.go
index ce31434d4..f139b9df6 100644
--- a/go/plugins/dotprompt/genkit.go
+++ b/go/plugins/dotprompt/genkit.go
@@ -218,7 +218,7 @@ func (p *Prompt) Generate(ctx context.Context, pr *PromptRequest, cb func(contex
return nil, errors.New("dotprompt model not in provider/name format")
}
- model := ai.LookupModel(provider, name)
+ model = ai.LookupModel(provider, name)
if model == nil {
return nil, fmt.Errorf("no model named %q for provider %q", name, provider)
}
diff --git a/go/plugins/dotprompt/genkit_test.go b/go/plugins/dotprompt/genkit_test.go
index 71bb3bb22..a724d28d8 100644
--- a/go/plugins/dotprompt/genkit_test.go
+++ b/go/plugins/dotprompt/genkit_test.go
@@ -43,14 +43,31 @@ func testGenerate(ctx context.Context, req *ai.GenerateRequest, cb func(context.
func TestExecute(t *testing.T) {
testModel := ai.DefineModel("test", "test", nil, testGenerate)
- p, err := New("TestExecute", "TestExecute", Config{Model: testModel})
- if err != nil {
- t.Fatal(err)
- }
- resp, err := p.Generate(context.Background(), &PromptRequest{}, nil)
- if err != nil {
- t.Fatal(err)
- }
+ t.Run("Model", func(t *testing.T) {
+ p, err := New("TestExecute", "TestExecute", Config{Model: testModel})
+ if err != nil {
+ t.Fatal(err)
+ }
+ resp, err := p.Generate(context.Background(), &PromptRequest{}, nil)
+ if err != nil {
+ t.Fatal(err)
+ }
+ assertResponse(t, resp)
+ })
+ t.Run("ModelName", func(t *testing.T) {
+ p, err := New("TestExecute", "TestExecute", Config{ModelName: "test/test"})
+ if err != nil {
+ t.Fatal(err)
+ }
+ resp, err := p.Generate(context.Background(), &PromptRequest{}, nil)
+ if err != nil {
+ t.Fatal(err)
+ }
+ assertResponse(t, resp)
+ })
+}
+
+func assertResponse(t *testing.T, resp *ai.GenerateResponse) {
if len(resp.Candidates) != 1 {
t.Errorf("got %d candidates, want 1", len(resp.Candidates))
if len(resp.Candidates) < 1 {
diff --git a/go/plugins/ollama/ollama.go b/go/plugins/ollama/ollama.go
index aa9d1f0ca..2ac9a9874 100644
--- a/go/plugins/ollama/ollama.go
+++ b/go/plugins/ollama/ollama.go
@@ -45,6 +45,7 @@ var state struct {
mu sync.Mutex
initted bool
serverAddress string
+ timeout int
}
func DefineModel(model ModelDefinition, caps *ai.ModelCapabilities) ai.Model {
@@ -67,7 +68,7 @@ func DefineModel(model ModelDefinition, caps *ai.ModelCapabilities) ai.Model {
Label: "Ollama - " + model.Name,
Supports: mc,
}
- g := &generator{model: model, serverAddress: state.serverAddress}
+ g := &generator{model: model, serverAddress: state.serverAddress, timeout: state.timeout}
return ai.DefineModel(provider, model.Name, meta, g.generate)
}
@@ -92,6 +93,7 @@ type ModelDefinition struct {
type generator struct {
model ModelDefinition
serverAddress string
+ timeout int
}
type ollamaMessage struct {
@@ -148,6 +150,7 @@ type ollamaGenerateResponse struct {
type Config struct {
// Server Address of oLLama.
ServerAddress string
+ Timeout int
}
// Init initializes the plugin.
@@ -162,6 +165,10 @@ func Init(ctx context.Context, cfg *Config) (err error) {
if cfg == nil || cfg.ServerAddress == "" {
return errors.New("ollama: need ServerAddress")
}
+ if cfg.Timeout == 0 {
+ cfg.Timeout = 30
+ }
+ state.timeout = cfg.Timeout
state.serverAddress = cfg.ServerAddress
state.initted = true
return nil
@@ -201,7 +208,7 @@ func (g *generator) generate(ctx context.Context, input *ai.GenerateRequest, cb
Stream: stream,
}
}
- client := &http.Client{Timeout: 30 * time.Second}
+ client := &http.Client{Timeout: time.Duration(g.timeout) * time.Second}
payloadBytes, err := json.Marshal(payload)
if err != nil {
return nil, err
diff --git a/js/ai/package.json b/js/ai/package.json
index 583c89f4c..1d5c3bce5 100644
--- a/js/ai/package.json
+++ b/js/ai/package.json
@@ -7,12 +7,12 @@
"genai",
"generative-ai"
],
- "version": "0.5.13",
+ "version": "0.5.17",
"type": "commonjs",
"scripts": {
"check": "tsc",
"compile": "tsup-node",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build": "npm-run-all build:clean check compile",
"build:watch": "tsup-node --watch",
"test": "node --import tsx --test ./tests/**/*_test.ts",
@@ -39,7 +39,8 @@
"npm-run-all": "^4.1.5",
"tsup": "^8.0.2",
"tsx": "^4.7.1",
- "typescript": "^4.9.0"
+ "typescript": "^4.9.0",
+ "rimraf": "^6.0.1"
},
"types": "lib/index.d.ts",
"exports": {
diff --git a/js/core/package.json b/js/core/package.json
index 88757b67e..a99f4bd40 100644
--- a/js/core/package.json
+++ b/js/core/package.json
@@ -7,12 +7,12 @@
"genai",
"generative-ai"
],
- "version": "0.5.13",
+ "version": "0.5.17",
"type": "commonjs",
"scripts": {
"check": "tsc",
"compile": "tsup-node",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build": "npm-run-all genversion build:clean check compile",
"build:watch": "tsup-node --watch",
"test": "node --import tsx --test tests/*_test.ts",
@@ -35,7 +35,7 @@
"ajv": "^8.12.0",
"ajv-formats": "^3.0.1",
"async-mutex": "^0.5.0",
- "express": "^4.19.2",
+ "express": "^4.21.0",
"json-schema": "^0.4.0",
"zod": "^3.22.4",
"zod-to-json-schema": "^3.22.4"
@@ -46,7 +46,8 @@
"npm-run-all": "^4.1.5",
"tsup": "^8.0.2",
"tsx": "^4.7.0",
- "typescript": "^4.9.0"
+ "typescript": "^4.9.0",
+ "rimraf": "^6.0.1"
},
"types": "lib/index.d.ts",
"exports": {
diff --git a/js/flow/package.json b/js/flow/package.json
index 9bd8db383..893091226 100644
--- a/js/flow/package.json
+++ b/js/flow/package.json
@@ -7,13 +7,13 @@
"genai",
"generative-ai"
],
- "version": "0.5.13",
+ "version": "0.5.17",
"type": "commonjs",
"main": "./lib/cjs/index.js",
"scripts": {
"check": "tsc",
"compile": "tsup-node",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build": "npm-run-all build:clean check compile",
"build:watch": "tsup-node --watch",
"test": "node --import tsx --test tests/*_test.ts"
@@ -30,11 +30,11 @@
"@google-cloud/firestore": "^7.6.0",
"@opentelemetry/api": "^1.9.0",
"@types/cors": "^2.8.17",
- "body-parser": "^1.20.2",
+ "body-parser": "^1.20.3",
"cors": "^2.8.5",
- "express": "^4.19.2",
- "firebase-admin": "^12.1.0",
- "firebase-functions": "^4.8.0 || ^5.0.0",
+ "express": "^4.21.0",
+ "firebase-admin": ">=12.2",
+ "firebase-functions": ">=4.8",
"uuid": "^9.0.1",
"zod": "^3.22.4"
},
@@ -45,7 +45,8 @@
"tsup": "^8.0.2",
"typescript": "^4.9.0",
"tsx": "^4.7.1",
- "@types/body-parser": "^1.19.5"
+ "@types/body-parser": "^1.19.5",
+ "rimraf": "^6.0.1"
},
"files": [
"genkit-ui",
diff --git a/js/flow/src/flow.ts b/js/flow/src/flow.ts
index 09b533d24..99138a3b4 100644
--- a/js/flow/src/flow.ts
+++ b/js/flow/src/flow.ts
@@ -16,28 +16,28 @@
import {
Action,
- defineAction,
FlowError,
FlowState,
FlowStateSchema,
FlowStateStore,
+ Operation,
+ StreamingCallback,
+ defineAction,
getStreamingCallback,
config as globalConfig,
isDevEnv,
- Operation,
- StreamingCallback,
} from '@genkit-ai/core';
import { logger } from '@genkit-ai/core/logging';
import { toJsonSchema } from '@genkit-ai/core/schema';
import {
+ SPAN_TYPE_ATTR,
newTrace,
setCustomMetadataAttribute,
setCustomMetadataAttributes,
- SPAN_TYPE_ATTR,
} from '@genkit-ai/core/tracing';
import { SpanStatusCode } from '@opentelemetry/api';
import * as bodyParser from 'body-parser';
-import { default as cors, CorsOptions } from 'cors';
+import { CorsOptions, default as cors } from 'cors';
import express from 'express';
import { performance } from 'node:perf_hooks';
import * as z from 'zod';
@@ -45,9 +45,9 @@ import { Context } from './context.js';
import {
FlowExecutionError,
FlowStillRunningError,
+ InterruptError,
getErrorMessage,
getErrorStack,
- InterruptError,
} from './errors.js';
import {
FlowActionInputSchema,
@@ -638,11 +638,15 @@ export async function runFlow<
);
}
- const state = await flow.runEnvelope({
- start: {
- input,
+ const state = await flow.runEnvelope(
+ {
+ start: {
+ input,
+ },
},
- });
+ undefined,
+ opts?.withLocalAuthContext
+ );
if (!state.operation.done) {
throw new FlowStillRunningError(
`flow ${state.name} did not finish execution`
@@ -704,14 +708,14 @@ export function streamFlow<
},
(c) => {
chunkStreamController.enqueue(c);
- }
+ },
+ opts?.withLocalAuthContext
)
)
- .then((s) => s.operation);
- operationPromise.then((o) => {
- chunkStreamController.close();
- return o;
- });
+ .then((s) => s.operation)
+ .finally(() => {
+ chunkStreamController.close();
+ });
return {
output() {
diff --git a/js/flow/tests/flow_test.ts b/js/flow/tests/flow_test.ts
index ff84ac952..295158535 100644
--- a/js/flow/tests/flow_test.ts
+++ b/js/flow/tests/flow_test.ts
@@ -20,6 +20,7 @@ import assert from 'node:assert';
import { beforeEach, describe, it } from 'node:test';
import { z } from 'zod';
import { defineFlow, runFlow, streamFlow } from '../src/flow.js';
+import { getFlowAuth } from '../src/utils.js';
import { configureInMemoryStateStore } from './testUtil.js';
function createTestFlow() {
@@ -35,6 +36,24 @@ function createTestFlow() {
);
}
+function createTestFlowWithAuth() {
+ return defineFlow(
+ {
+ name: 'testFlowWithAuth',
+ inputSchema: z.string(),
+ outputSchema: z.string(),
+ authPolicy: async (auth) => {
+ if (auth != 'open sesame') {
+ throw new Error('forty thieves!');
+ }
+ },
+ },
+ async (input) => {
+ return `foo ${input}, auth ${JSON.stringify(getFlowAuth())}`;
+ }
+ );
+}
+
function createTestStreamingFlow() {
return defineFlow(
{
@@ -115,6 +134,30 @@ describe('flow', () => {
}
);
});
+
+ it('should pass auth context all the way', async () => {
+ configureInMemoryStateStore('prod');
+ const testFlow = createTestFlowWithAuth();
+
+ const result = await runFlow(testFlow, 'bar', {
+ withLocalAuthContext: 'open sesame',
+ });
+
+ assert.equal(result, 'foo bar, auth "open sesame"');
+ });
+
+ it('should fail auth', async () => {
+ configureInMemoryStateStore('prod');
+ const testFlow = createTestFlowWithAuth();
+
+ await assert.rejects(
+ () =>
+ runFlow(testFlow, 'bar', {
+ withLocalAuthContext: 'yolo',
+ }),
+ /forty thieves/
+ );
+ });
});
describe('streamFlow', () => {
@@ -151,6 +194,27 @@ describe('flow', () => {
message: 'bad happened: foo',
});
});
+
+ it('should pass auth context all the way', async () => {
+ configureInMemoryStateStore('prod');
+ const testFlow = createTestFlowWithAuth();
+
+ const result = await streamFlow(testFlow, 'bar', {
+ withLocalAuthContext: 'open sesame',
+ });
+
+ assert.equal(await result.output(), 'foo bar, auth "open sesame"');
+ });
+
+ it('should fail auth', async () => {
+ configureInMemoryStateStore('prod');
+ const testFlow = createTestFlowWithAuth();
+ const response = streamFlow(testFlow, 'bar', {
+ withLocalAuthContext: 'yolo',
+ });
+
+ await assert.rejects(() => response.output(), /forty thieves/);
+ });
});
describe('stateStore', () => {
diff --git a/js/package.json b/js/package.json
index 71054cdc5..5f47a621a 100644
--- a/js/package.json
+++ b/js/package.json
@@ -19,5 +19,5 @@
"only-allow": "^1.2.1",
"typescript": "^4.9.0"
},
- "packageManager": "pnpm@9.10.0+sha256.355a8ab8dbb6ad41befbef39bc4fd6b5df85e12761d2724bd01f13e878de4b13"
+ "packageManager": "pnpm@9.12.0+sha256.a61b67ff6cc97af864564f4442556c22a04f2e5a7714fbee76a1011361d9b726"
}
diff --git a/js/plugins/chroma/package.json b/js/plugins/chroma/package.json
index c33fd7a58..c623cb77e 100644
--- a/js/plugins/chroma/package.json
+++ b/js/plugins/chroma/package.json
@@ -13,12 +13,12 @@
"genai",
"generative-ai"
],
- "version": "0.5.13",
+ "version": "0.5.17",
"type": "commonjs",
"scripts": {
"check": "tsc",
"compile": "tsup-node",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build": "npm-run-all build:clean check compile",
"build:watch": "tsup-node --watch"
},
@@ -43,7 +43,8 @@
"npm-run-all": "^4.1.5",
"tsup": "^8.0.2",
"tsx": "^4.7.0",
- "typescript": "^4.9.0"
+ "typescript": "^4.9.0",
+ "rimraf": "^6.0.1"
},
"types": "./lib/index.d.ts",
"exports": {
diff --git a/js/plugins/dev-local-vectorstore/package.json b/js/plugins/dev-local-vectorstore/package.json
index a9b41b3fb..82a6cb74b 100644
--- a/js/plugins/dev-local-vectorstore/package.json
+++ b/js/plugins/dev-local-vectorstore/package.json
@@ -10,12 +10,12 @@
"genai",
"generative-ai"
],
- "version": "0.5.13",
+ "version": "0.5.17",
"type": "commonjs",
"scripts": {
"check": "tsc",
"compile": "tsup-node",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build": "npm-run-all build:clean check compile",
"build:watch": "tsup-node --watch"
},
@@ -40,7 +40,8 @@
"npm-run-all": "^4.1.5",
"tsup": "^8.0.2",
"tsx": "^4.7.0",
- "typescript": "^4.9.0"
+ "typescript": "^4.9.0",
+ "rimraf": "^6.0.1"
},
"types": "./lib/index.d.ts",
"exports": {
diff --git a/js/plugins/dotprompt/package.json b/js/plugins/dotprompt/package.json
index ec881b28b..20f8ecb8e 100644
--- a/js/plugins/dotprompt/package.json
+++ b/js/plugins/dotprompt/package.json
@@ -9,12 +9,12 @@
"prompting",
"templating"
],
- "version": "0.5.13",
+ "version": "0.5.17",
"type": "commonjs",
"scripts": {
"check": "tsc",
"compile": "tsup-node",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build": "npm-run-all build:clean check compile",
"build:watch": "tsup-node --watch",
"test": "tsx --test tests/*_test.ts"
@@ -42,7 +42,8 @@
"tsup": "^8.0.2",
"tsx": "^4.7.0",
"typescript": "^4.9.0",
- "yaml": "^2.4.1"
+ "yaml": "^2.4.1",
+ "rimraf": "^6.0.1"
},
"types": "./lib/index.d.ts",
"exports": {
diff --git a/js/plugins/evaluators/package.json b/js/plugins/evaluators/package.json
index 568234d3d..fec452707 100644
--- a/js/plugins/evaluators/package.json
+++ b/js/plugins/evaluators/package.json
@@ -11,12 +11,12 @@
"genai",
"generative-ai"
],
- "version": "0.5.13",
+ "version": "0.5.17",
"type": "commonjs",
"scripts": {
"check": "tsc",
"compile": "tsup-node",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build": "npm-run-all build:clean check compile",
"build:watch": "tsup-node --watch",
"lint": "eslint --config ../../.eslintrc.js --ext .ts src",
@@ -45,7 +45,8 @@
"npm-run-all": "^4.1.5",
"tsup": "^8.0.2",
"tsx": "^4.7.0",
- "typescript": "^4.9.0"
+ "typescript": "^4.9.0",
+ "rimraf": "^6.0.1"
},
"types": "./lib/index.d.ts",
"exports": {
diff --git a/js/plugins/firebase/package.json b/js/plugins/firebase/package.json
index 084c6644a..dd06d799f 100644
--- a/js/plugins/firebase/package.json
+++ b/js/plugins/firebase/package.json
@@ -13,12 +13,12 @@
"genai",
"generative-ai"
],
- "version": "0.5.13",
+ "version": "0.5.17",
"type": "commonjs",
"scripts": {
"check": "tsc",
"compile": "tsup-node",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build": "npm-run-all build:clean check compile",
"build:watch": "tsup-node --watch",
"test": "node --import tsx --test tests/*_test.ts"
@@ -32,14 +32,14 @@
"license": "Apache-2.0",
"dependencies": {
"@genkit-ai/google-cloud": "workspace:*",
- "express": "^4.19.2",
+ "express": "^4.21.0",
"google-auth-library": "^9.6.3",
"zod": "^3.22.4"
},
"peerDependencies": {
- "@google-cloud/firestore": "^7.6.0",
- "firebase-admin": "^12.2.0",
- "firebase-functions": "^4.8.0 || ^5.0.0",
+ "@google-cloud/firestore": ">7.6",
+ "firebase-admin": ">=12.2",
+ "firebase-functions": ">=4.8",
"@genkit-ai/ai": "workspace:*",
"@genkit-ai/core": "workspace:*",
"@genkit-ai/flow": "workspace:*"
@@ -49,7 +49,8 @@
"npm-run-all": "^4.1.5",
"tsup": "^8.0.2",
"tsx": "^4.7.0",
- "typescript": "^4.9.0"
+ "typescript": "^4.9.0",
+ "rimraf": "^6.0.1"
},
"types": "./lib/index.d.ts",
"exports": {
diff --git a/js/plugins/google-cloud/package.json b/js/plugins/google-cloud/package.json
index 8f1b9234f..788463cde 100644
--- a/js/plugins/google-cloud/package.json
+++ b/js/plugins/google-cloud/package.json
@@ -13,12 +13,12 @@
"genai",
"generative-ai"
],
- "version": "0.5.13",
+ "version": "0.5.17",
"type": "commonjs",
"scripts": {
"check": "tsc",
"compile": "tsup-node",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build": "npm-run-all build:clean check compile",
"build:watch": "tsup-node --watch",
"test": "tsx --test ./tests/*_test.ts"
@@ -33,8 +33,8 @@
"dependencies": {
"@google-cloud/logging-winston": "^6.0.0",
"@google-cloud/opentelemetry-cloud-monitoring-exporter": "^0.19.0",
- "@google-cloud/opentelemetry-cloud-trace-exporter": "^2.1.0",
- "@google-cloud/opentelemetry-resource-util": "^2.1.0",
+ "@google-cloud/opentelemetry-cloud-trace-exporter": "^2.4.1",
+ "@google-cloud/opentelemetry-resource-util": "^2.4.0",
"@opentelemetry/api": "^1.9.0",
"@opentelemetry/auto-instrumentations-node": "^0.49.1",
"@opentelemetry/core": "^1.25.0",
@@ -48,6 +48,7 @@
"google-auth-library": "^9.6.3",
"node-fetch": "^3.3.2",
"prettier-plugin-organize-imports": "^3.2.4",
+ "truncate-utf8-bytes": "^1.0.2",
"winston": "^3.12.0",
"zod": "^3.22.4"
},
@@ -61,7 +62,8 @@
"tsup": "^8.0.2",
"tsx": "^4.7.0",
"typescript": "^4.9.0",
- "@genkit-ai/flow": "workspace:*"
+ "@genkit-ai/flow": "workspace:*",
+ "rimraf": "^6.0.1"
},
"types": "./lib/index.d.ts",
"exports": {
diff --git a/js/plugins/google-cloud/src/telemetry/generate.ts b/js/plugins/google-cloud/src/telemetry/generate.ts
index f235a3ab3..1246b8899 100644
--- a/js/plugins/google-cloud/src/telemetry/generate.ts
+++ b/js/plugins/google-cloud/src/telemetry/generate.ts
@@ -35,6 +35,7 @@ import {
} from '../metrics';
import { ReadableSpan } from '@opentelemetry/sdk-trace-base';
+import truncate from 'truncate-utf8-bytes';
import { Telemetry } from '../metrics';
import {
createCommonLogAttributes,
@@ -60,8 +61,10 @@ class GenerateTelemetry implements Telemetry {
*/
private _N = internalMetricNamespaceWrap.bind(null, 'ai');
- /** The maximum length (in characters) of a logged prompt message. */
- private MAX_LOG_CONTENT_CHARS = 128_000;
+ /** The maximum length (in bytes) of a logged prompt message. The maximum log
+ * size in GCP is 256kb, so using slightly lower for some buffer for the rest
+ * of the message*/
+ private MAX_LOG_CONTENT_BYTES = 200_000;
private actionCounter = new MetricCounter(this._N('generate/requests'), {
description: 'Counts calls to genkit generate actions.',
@@ -299,6 +302,18 @@ class GenerateTelemetry implements Telemetry {
output.candidates.forEach((cand, candIdx) => {
const parts = cand.message.content.length;
+ const candCounts = parts > 1 ? ` (${candIdx + 1} of ${parts})` : '';
+ logger.logStructured(`Output Candidate[${path}, ${model}]${candCounts}`, {
+ ...sharedMetadata,
+ candidateIndex: candIdx,
+ totalCandidates: candidates,
+ messageIndex: cand.index,
+ finishReason: cand.finishReason,
+ finishMessage: cand.finishMessage,
+ role: cand.message.role,
+ usage: cand.usage,
+ custom: cand.custom,
+ });
cand.message.content.forEach((part, partIdx) => {
const partCounts = this.toPartCounts(
partIdx,
@@ -321,6 +336,12 @@ class GenerateTelemetry implements Telemetry {
finishReason: cand.finishReason,
});
});
+ if (output.usage) {
+ logger.logStructured(`Usage[${path}, ${model}]`, {
+ ...sharedMetadata,
+ usage: output.usage,
+ });
+ }
});
}
@@ -366,7 +387,7 @@ class GenerateTelemetry implements Telemetry {
}
private toPartLogText(text: string): string {
- return text.substring(0, this.MAX_LOG_CONTENT_CHARS);
+ return truncate(text, this.MAX_LOG_CONTENT_BYTES);
}
private toPartLogMedia(part: MediaPart): string {
diff --git a/js/plugins/google-cloud/src/utils.ts b/js/plugins/google-cloud/src/utils.ts
index d8ea43cde..ad6673469 100644
--- a/js/plugins/google-cloud/src/utils.ts
+++ b/js/plugins/google-cloud/src/utils.ts
@@ -22,7 +22,7 @@ export function extractOuterFlowNameFromPath(path: string) {
return '';
}
- const flowName = path.match('/{(.+),t:flow}+');
+ const flowName = path.match('/{([^,}]+),t:flow}+');
return flowName ? flowName[1] : '';
}
diff --git a/js/plugins/google-cloud/tests/logs_test.ts b/js/plugins/google-cloud/tests/logs_test.ts
index 596c3bb50..127d198a9 100644
--- a/js/plugins/google-cloud/tests/logs_test.ts
+++ b/js/plugins/google-cloud/tests/logs_test.ts
@@ -185,6 +185,18 @@ describe('GoogleCloudLogs no I/O', () => {
logMessages.includes('[info] Output[testFlow, testModel]'),
false
);
+ assert.equal(
+ logMessages.includes(
+ '[info] Output Candidate[testFlow > sub1 > sub2 > testModel, testModel]'
+ ),
+ false
+ );
+ assert.equal(
+ logMessages.includes(
+ '[info] Usage[testFlow > sub1 > sub2 > testModel, testModel]'
+ ),
+ false
+ );
});
});
@@ -336,6 +348,18 @@ describe('GoogleCloudLogs', () => {
logMessages.includes('[info] Output[testFlow, testFlow]'),
true
);
+ assert.equal(
+ logMessages.includes(
+ '[info] Output Candidate[testFlow > sub1 > sub2 > testModel, testModel]'
+ ),
+ true
+ );
+ assert.equal(
+ logMessages.includes(
+ '[info] Usage[testFlow > sub1 > sub2 > testModel, testModel]'
+ ),
+ true
+ );
});
});
diff --git a/js/plugins/google-cloud/tests/metrics_test.ts b/js/plugins/google-cloud/tests/metrics_test.ts
index 2ed07ab95..d343dd43d 100644
--- a/js/plugins/google-cloud/tests/metrics_test.ts
+++ b/js/plugins/google-cloud/tests/metrics_test.ts
@@ -25,6 +25,7 @@ import {
FlowStateStore,
} from '@genkit-ai/core';
import { registerFlowStateStore } from '@genkit-ai/core/registry';
+import { newTrace } from '@genkit-ai/core/tracing';
import { defineFlow, run, runAction, runFlow } from '@genkit-ai/flow';
import {
__forceFlushSpansForTesting,
@@ -370,7 +371,9 @@ describe('GoogleCloudMetrics', () => {
});
});
- await runFlow(flow);
+ await newTrace({ name: 'dev-run-action-wrapper' }, async (_, span) => {
+ await runFlow(flow);
+ });
await getExportedSpans();
diff --git a/js/plugins/googleai/package.json b/js/plugins/googleai/package.json
index 68f96a9bb..f5cc3aea5 100644
--- a/js/plugins/googleai/package.json
+++ b/js/plugins/googleai/package.json
@@ -13,12 +13,12 @@
"genai",
"generative-ai"
],
- "version": "0.5.13",
+ "version": "0.5.17",
"type": "commonjs",
"scripts": {
"check": "tsc",
"compile": "tsup-node",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build": "npm-run-all build:clean check compile",
"build:watch": "tsup-node --watch",
"test": "tsx --test ./tests/*_test.ts"
@@ -45,7 +45,8 @@
"npm-run-all": "^4.1.5",
"tsup": "^8.0.2",
"tsx": "^4.7.0",
- "typescript": "^4.9.0"
+ "typescript": "^4.9.0",
+ "rimraf": "^6.0.1"
},
"types": "./lib/index.d.ts",
"exports": {
diff --git a/js/plugins/googleai/src/gemini.ts b/js/plugins/googleai/src/gemini.ts
index 5e1084fd3..22a64e400 100644
--- a/js/plugins/googleai/src/gemini.ts
+++ b/js/plugins/googleai/src/gemini.ts
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+import { extractJson } from '@genkit-ai/ai/extract';
import {
CandidateData,
defineModel,
@@ -80,19 +81,19 @@ export const geminiPro = modelRef({
name: 'googleai/gemini-pro',
info: {
label: 'Google AI - Gemini Pro',
- versions: ['gemini-1.0-pro', 'gemini-1.0-pro-latest', 'gemini-1.0-pro-001'],
supports: {
multiturn: true,
media: false,
tools: true,
systemRole: true,
},
+ versions: ['gemini-1.0-pro', 'gemini-1.0-pro-latest', 'gemini-1.0-pro-001'],
},
configSchema: GeminiConfigSchema,
});
/**
- * @deprecated Use `gemini15Pro` or `gemini15Flash` instead.
+ * @deprecated Use `gemini15Pro`, `gemini15Flash`, or `gemini15flash8B` instead.
*/
export const geminiProVision = modelRef({
name: 'googleai/gemini-pro-vision',
@@ -122,7 +123,12 @@ export const gemini15Pro = modelRef({
systemRole: true,
output: ['text', 'json'],
},
- versions: ['gemini-1.5-pro-001'],
+ versions: [
+ 'gemini-1.5-pro',
+ 'gemini-1.5-pro-001',
+ 'gemini-1.5-pro-002',
+ 'gemini-1.5-pro-exp-0827',
+ ],
},
configSchema: GeminiConfigSchema,
});
@@ -138,7 +144,30 @@ export const gemini15Flash = modelRef({
systemRole: true,
output: ['text', 'json'],
},
- versions: ['gemini-1.5-flash-001'],
+ versions: [
+ 'gemini-1.5-flash',
+ 'gemini-1.5-flash-001',
+ 'gemini-1.5-flash-002',
+ 'gemini-1.5-flash-8b-exp-0924',
+ 'gemini-1.5-flash-8b-exp-0827',
+ 'gemini-1.5-flash-exp-0827',
+ ],
+ },
+ configSchema: GeminiConfigSchema,
+});
+
+export const gemini15Flash8B = modelRef({
+ name: 'googleai/gemini-1.5-flash-8b-latest',
+ info: {
+ label: 'Google AI - Gemini 1.5 Flash-8B',
+ supports: {
+ multiturn: true,
+ media: true,
+ tools: true,
+ systemRole: true,
+ output: ['text', 'json'],
+ },
+ versions: ['gemini-1.5-flash-8b', 'gemini-1.5-flash-8b-001'],
},
configSchema: GeminiConfigSchema,
});
@@ -173,6 +202,7 @@ export const SUPPORTED_V15_MODELS: Record<
> = {
'gemini-1.5-pro-latest': gemini15Pro,
'gemini-1.5-flash-latest': gemini15Flash,
+ 'gemini-1.5-flash-8b-latest': gemini15Flash8B,
};
const SUPPORTED_MODELS = {
@@ -388,7 +418,7 @@ function toGeminiPart(part: Part): GeminiPart {
function fromGeminiPart(part: GeminiPart, jsonMode: boolean): Part {
if (jsonMode && part.text !== undefined) {
- return { data: JSON.parse(part.text) };
+ return { data: extractJson(part.text) };
}
if (part.text !== undefined) return { text: part.text };
if (part.inlineData) return fromInlineData(part);
@@ -534,18 +564,6 @@ export function googleAIModel(
systemInstruction = toGeminiSystemInstruction(systemMessage);
}
}
- const generationConfig: GenerationConfig = {
- candidateCount: request.candidates || undefined,
- temperature: request.config?.temperature,
- maxOutputTokens: request.config?.maxOutputTokens,
- topK: request.config?.topK,
- topP: request.config?.topP,
- stopSequences: request.config?.stopSequences,
- responseMimeType:
- request.output?.format === 'json' || request.output?.schema
- ? 'application/json'
- : undefined,
- };
const tools: Tool[] = [];
@@ -564,6 +582,21 @@ export function googleAIModel(
});
}
+ // cannot use tools with json mode
+ const jsonMode =
+ (request.output?.format === 'json' || !!request.output?.schema) &&
+ tools.length === 0;
+
+ const generationConfig: GenerationConfig = {
+ candidateCount: request.candidates || undefined,
+ temperature: request.config?.temperature,
+ maxOutputTokens: request.config?.maxOutputTokens,
+ topK: request.config?.topK,
+ topP: request.config?.topP,
+ stopSequences: request.config?.stopSequences,
+ responseMimeType: jsonMode ? 'application/json' : undefined,
+ };
+
const chatRequest = {
systemInstruction,
generationConfig,
@@ -574,8 +607,6 @@ export function googleAIModel(
safetySettings: request.config?.safetySettings,
} as StartChatParams;
const msg = toGeminiMessage(messages[messages.length - 1], model);
- const jsonMode =
- request.output?.format === 'json' || !!request.output?.schema;
const fromJSONModeScopedGeminiCandidate = (
candidate: GeminiCandidate
) => {
diff --git a/js/plugins/googleai/src/index.ts b/js/plugins/googleai/src/index.ts
index f55c2f15f..848ffb9ae 100644
--- a/js/plugins/googleai/src/index.ts
+++ b/js/plugins/googleai/src/index.ts
@@ -22,6 +22,7 @@ import {
} from './embedder.js';
import {
gemini15Flash,
+ gemini15Flash8B,
gemini15Pro,
geminiPro,
geminiProVision,
@@ -31,6 +32,7 @@ import {
} from './gemini.js';
export {
gemini15Flash,
+ gemini15Flash8B,
gemini15Pro,
geminiPro,
geminiProVision,
diff --git a/js/plugins/langchain/package.json b/js/plugins/langchain/package.json
index a61fd39e0..bb8c00de7 100644
--- a/js/plugins/langchain/package.json
+++ b/js/plugins/langchain/package.json
@@ -9,12 +9,12 @@
"genai",
"generative-ai"
],
- "version": "0.5.13",
+ "version": "0.5.17",
"type": "commonjs",
"scripts": {
"check": "tsc",
"compile": "tsup-node",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build": "npm-run-all build:clean check compile",
"build:watch": "tsup-node --watch"
},
@@ -26,7 +26,7 @@
"author": "genkit",
"license": "Apache-2.0",
"dependencies": {
- "@langchain/community": "^0.0.53",
+ "@langchain/community": "^0.3.3",
"@langchain/core": "^0.1.61",
"@opentelemetry/api": "^1.9.0",
"zod": "^3.22.4"
@@ -42,7 +42,8 @@
"npm-run-all": "^4.1.5",
"tsup": "^8.0.2",
"tsx": "^4.7.0",
- "typescript": "^4.9.0"
+ "typescript": "^4.9.0",
+ "rimraf": "^6.0.1"
},
"types": "./lib/index.d.ts",
"exports": {
diff --git a/js/plugins/ollama/package.json b/js/plugins/ollama/package.json
index 1d5b88726..e8421b372 100644
--- a/js/plugins/ollama/package.json
+++ b/js/plugins/ollama/package.json
@@ -10,12 +10,12 @@
"genai",
"generative-ai"
],
- "version": "0.5.13",
+ "version": "0.5.17",
"type": "commonjs",
"scripts": {
"check": "tsc",
"compile": "tsup-node",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build": "npm-run-all build:clean check compile",
"build:watch": "tsup-node --watch"
},
@@ -26,6 +26,9 @@
},
"author": "genkit",
"license": "Apache-2.0",
+ "dependencies": {
+ "zod": "^3.22.4"
+ },
"peerDependencies": {
"@genkit-ai/ai": "workspace:*",
"@genkit-ai/core": "workspace:*"
@@ -35,7 +38,8 @@
"npm-run-all": "^4.1.5",
"tsup": "^8.0.2",
"tsx": "^4.7.0",
- "typescript": "^4.9.0"
+ "typescript": "^4.9.0",
+ "rimraf": "^6.0.1"
},
"types": "./lib/index.d.ts",
"exports": {
diff --git a/js/plugins/ollama/src/embeddings.ts b/js/plugins/ollama/src/embeddings.ts
new file mode 100644
index 000000000..0b991672f
--- /dev/null
+++ b/js/plugins/ollama/src/embeddings.ts
@@ -0,0 +1,96 @@
+/**
+ * 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 { defineEmbedder } from '@genkit-ai/ai/embedder';
+import { logger } from '@genkit-ai/core/logging';
+import z from 'zod';
+import { OllamaPluginParams } from './index.js';
+// Define the schema for Ollama embedding configuration
+export const OllamaEmbeddingConfigSchema = z.object({
+ modelName: z.string(),
+ serverAddress: z.string(),
+});
+export type OllamaEmbeddingConfig = z.infer;
+// Define the structure of the request and response for embedding
+interface OllamaEmbeddingInstance {
+ content: string;
+}
+interface OllamaEmbeddingPrediction {
+ embedding: number[];
+}
+interface DefineOllamaEmbeddingParams {
+ name: string;
+ modelName: string;
+ dimensions: number;
+ options: OllamaPluginParams;
+}
+export function defineOllamaEmbedder({
+ name,
+ modelName,
+ dimensions,
+ options,
+}: DefineOllamaEmbeddingParams) {
+ return defineEmbedder(
+ {
+ name,
+ configSchema: OllamaEmbeddingConfigSchema, // Use the Zod schema directly here
+ info: {
+ // TODO: do we want users to be able to specify the label when they call this method directly?
+ label: 'Ollama Embedding - ' + modelName,
+ dimensions,
+ supports: {
+ // TODO: do any ollama models support other modalities?
+ input: ['text'],
+ },
+ },
+ },
+ async (input, _config) => {
+ const serverAddress = options.serverAddress;
+ const responses = await Promise.all(
+ input.map(async (i) => {
+ const requestPayload = {
+ model: modelName,
+ prompt: i.text(),
+ };
+ let res: Response;
+ try {
+ console.log('MODEL NAME: ', modelName);
+ res = await fetch(`${serverAddress}/api/embeddings`, {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ body: JSON.stringify(requestPayload),
+ });
+ } catch (e) {
+ logger.error('Failed to fetch Ollama embedding');
+ throw new Error(`Error fetching embedding from Ollama: ${e}`);
+ }
+ if (!res.ok) {
+ logger.error('Failed to fetch Ollama embedding');
+ throw new Error(
+ `Error fetching embedding from Ollama: ${res.statusText}`
+ );
+ }
+ const responseData = (await res.json()) as OllamaEmbeddingPrediction;
+ return responseData;
+ })
+ );
+ return {
+ embeddings: responses,
+ };
+ }
+ );
+}
diff --git a/js/plugins/ollama/src/index.ts b/js/plugins/ollama/src/index.ts
index 7a7bbb636..8e5b7ceef 100644
--- a/js/plugins/ollama/src/index.ts
+++ b/js/plugins/ollama/src/index.ts
@@ -25,6 +25,7 @@ import {
} from '@genkit-ai/ai/model';
import { genkitPlugin, Plugin } from '@genkit-ai/core';
import { logger } from '@genkit-ai/core/logging';
+import { defineOllamaEmbedder } from './embeddings';
type ApiType = 'chat' | 'generate';
@@ -36,9 +37,10 @@ type RequestHeaders =
) => Promise | void>);
type ModelDefinition = { name: string; type?: ApiType };
-
+type EmbeddingModelDefinition = { name: string; dimensions: number };
export interface OllamaPluginParams {
models: ModelDefinition[];
+ embeddingModels?: EmbeddingModelDefinition[];
/**
* ollama server address.
*/
@@ -55,6 +57,14 @@ export const ollama: Plugin<[OllamaPluginParams]> = genkitPlugin(
models: params.models.map((model) =>
ollamaModel(model, serverAddress, params.requestHeaders)
),
+ embedders: params.embeddingModels?.map((model) =>
+ defineOllamaEmbedder({
+ name: `${ollama}/model.name`,
+ modelName: model.name,
+ dimensions: model.dimensions,
+ options: params,
+ })
+ ),
};
}
);
diff --git a/js/plugins/ollama/tests/embeddings_live_test.ts b/js/plugins/ollama/tests/embeddings_live_test.ts
new file mode 100644
index 000000000..f89500df1
--- /dev/null
+++ b/js/plugins/ollama/tests/embeddings_live_test.ts
@@ -0,0 +1,51 @@
+/**
+ * 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 { embed } from '@genkit-ai/ai/embedder';
+import assert from 'node:assert';
+import { describe, it } from 'node:test';
+import { defineOllamaEmbedder } from '../src/embeddings.js'; // Adjust the import path as necessary
+import { OllamaPluginParams } from '../src/index.js'; // Adjust the import path as necessary
+// Utility function to parse command-line arguments
+function parseArgs() {
+ const args = process.argv.slice(2);
+ const serverAddress =
+ args.find((arg) => arg.startsWith('--server-address='))?.split('=')[1] ||
+ 'http://localhost:11434';
+ const modelName =
+ args.find((arg) => arg.startsWith('--model-name='))?.split('=')[1] ||
+ 'nomic-embed-text';
+ return { serverAddress, modelName };
+}
+const { serverAddress, modelName } = parseArgs();
+describe('defineOllamaEmbedder - Live Tests', () => {
+ const options: OllamaPluginParams = {
+ models: [{ name: modelName }],
+ serverAddress,
+ };
+ it('should successfully return embeddings', async () => {
+ const embedder = defineOllamaEmbedder({
+ name: 'live-test-embedder',
+ modelName: 'nomic-embed-text',
+ dimensions: 768,
+ options,
+ });
+ const result = await embed({
+ embedder,
+ content: 'Hello, world!',
+ });
+ assert.strictEqual(result.length, 768);
+ });
+});
diff --git a/js/plugins/ollama/tests/embeddings_test.ts b/js/plugins/ollama/tests/embeddings_test.ts
new file mode 100644
index 000000000..61255028a
--- /dev/null
+++ b/js/plugins/ollama/tests/embeddings_test.ts
@@ -0,0 +1,119 @@
+/**
+ * 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 { embed } from '@genkit-ai/ai/embedder';
+import assert from 'node:assert';
+import { describe, it } from 'node:test';
+import {
+ OllamaEmbeddingConfigSchema,
+ defineOllamaEmbedder,
+} from '../src/embeddings.js'; // Adjust the import path as necessary
+import { OllamaPluginParams } from '../src/index.js'; // Adjust the import path as necessary
+// Mock fetch to simulate API responses
+global.fetch = async (input: RequestInfo | URL, options?: RequestInit) => {
+ const url = typeof input === 'string' ? input : input.toString();
+ if (url.includes('/api/embedding')) {
+ if (options?.body && JSON.stringify(options.body).includes('fail')) {
+ return {
+ ok: false,
+ statusText: 'Internal Server Error',
+ json: async () => ({}),
+ } as Response;
+ }
+ return {
+ ok: true,
+ json: async () => ({
+ embedding: [0.1, 0.2, 0.3], // Example embedding values
+ }),
+ } as Response;
+ }
+ throw new Error('Unknown API endpoint');
+};
+describe('defineOllamaEmbedder', () => {
+ const options: OllamaPluginParams = {
+ models: [{ name: 'test-model' }],
+ serverAddress: 'http://localhost:3000',
+ };
+ it('should successfully return embeddings', async () => {
+ const embedder = defineOllamaEmbedder({
+ name: 'test-embedder',
+ modelName: 'test-model',
+ dimensions: 123,
+ options,
+ });
+ const result = await embed({
+ embedder,
+ content: 'Hello, world!',
+ });
+ assert.deepStrictEqual(result, [0.1, 0.2, 0.3]);
+ });
+ it('should handle API errors correctly', async () => {
+ const embedder = defineOllamaEmbedder({
+ name: 'test-embedder',
+ modelName: 'test-model',
+ dimensions: 123,
+ options,
+ });
+ await assert.rejects(
+ async () => {
+ await embed({
+ embedder,
+ content: 'fail',
+ });
+ },
+ (error) => {
+ // Check if error is an instance of Error
+ assert(error instanceof Error);
+ assert.strictEqual(
+ error.message,
+ 'Error fetching embedding from Ollama: Internal Server Error'
+ );
+ return true;
+ }
+ );
+ });
+ it('should validate the embedding configuration schema', async () => {
+ const validConfig = {
+ modelName: 'test-model',
+ serverAddress: 'http://localhost:3000',
+ };
+ const invalidConfig = {
+ modelName: 123, // Invalid type
+ serverAddress: 'http://localhost:3000',
+ };
+ // Valid configuration should pass
+ assert.doesNotThrow(() => {
+ OllamaEmbeddingConfigSchema.parse(validConfig);
+ });
+ // Invalid configuration should throw
+ assert.throws(() => {
+ OllamaEmbeddingConfigSchema.parse(invalidConfig);
+ });
+ });
+ it('should throw an error if the fetch response is not ok', async () => {
+ const embedder = defineOllamaEmbedder({
+ name: 'test-embedder',
+ modelName: 'test-model',
+ dimensions: 123,
+ options,
+ });
+ await assert.rejects(async () => {
+ await embed({
+ embedder,
+ content: 'fail',
+ });
+ }, new Error('Error fetching embedding from Ollama: Internal Server Error'));
+ });
+});
diff --git a/js/plugins/pinecone/package.json b/js/plugins/pinecone/package.json
index fc5d73b58..43f5a6a23 100644
--- a/js/plugins/pinecone/package.json
+++ b/js/plugins/pinecone/package.json
@@ -13,12 +13,12 @@
"genai",
"generative-ai"
],
- "version": "0.5.13",
+ "version": "0.5.17",
"type": "commonjs",
"scripts": {
"check": "tsc",
"compile": "tsup-node",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build": "npm-run-all build:clean check compile",
"build:watch": "tsup-node --watch"
},
@@ -43,7 +43,8 @@
"npm-run-all": "^4.1.5",
"tsup": "^8.0.2",
"tsx": "^4.7.0",
- "typescript": "^4.9.0"
+ "typescript": "^4.9.0",
+ "rimraf": "^6.0.1"
},
"types": "./lib/index.d.ts",
"exports": {
diff --git a/js/plugins/vertexai/package.json b/js/plugins/vertexai/package.json
index f6aac424a..f5e36e662 100644
--- a/js/plugins/vertexai/package.json
+++ b/js/plugins/vertexai/package.json
@@ -17,12 +17,12 @@
"genai",
"generative-ai"
],
- "version": "0.5.13",
+ "version": "0.5.17",
"type": "commonjs",
"scripts": {
"check": "tsc",
"compile": "tsup-node",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build": "npm-run-all build:clean check compile",
"build:watch": "tsup-node --watch",
"test": "tsx --test ./tests/**/*_test.ts"
@@ -38,8 +38,8 @@
"@anthropic-ai/sdk": "^0.24.3",
"@anthropic-ai/vertex-sdk": "^0.4.0",
"@google-cloud/aiplatform": "^3.23.0",
- "@google-cloud/vertexai": "^1.1.0",
- "google-auth-library": "^9.6.3",
+ "@google-cloud/vertexai": "^1.7.0",
+ "google-auth-library": "^9.14.1",
"googleapis": "^140.0.1",
"node-fetch": "^3.3.2",
"openai": "^4.52.7",
@@ -51,15 +51,16 @@
"@genkit-ai/flow": "workspace:*"
},
"optionalDependencies": {
- "firebase-admin": "^12.1.0",
- "@google-cloud/bigquery": "^7.8.0"
+ "@google-cloud/bigquery": "^7.8.0",
+ "firebase-admin": ">=12.2"
},
"devDependencies": {
"@types/node": "^20.11.16",
"npm-run-all": "^4.1.5",
"tsup": "^8.0.2",
"tsx": "^4.7.0",
- "typescript": "^4.9.0"
+ "typescript": "^4.9.0",
+ "rimraf": "^6.0.1"
},
"types": "./lib/index.d.ts",
"exports": {
diff --git a/js/plugins/vertexai/src/gemini.ts b/js/plugins/vertexai/src/gemini.ts
index 49d347bce..0ad11216b 100644
--- a/js/plugins/vertexai/src/gemini.ts
+++ b/js/plugins/vertexai/src/gemini.ts
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+import { extractJson } from '@genkit-ai/ai/extract';
import {
CandidateData,
defineModel,
@@ -79,7 +80,7 @@ export const geminiPro = modelRef({
name: 'vertexai/gemini-1.0-pro',
info: {
label: 'Vertex AI - Gemini Pro',
- versions: ['gemini-1.0-pro', 'gemini-1.0-pro-001'],
+ versions: ['gemini-1.0-pro', 'gemini-1.0-pro-001', 'gemini-1.0-pro-002'],
supports: {
multiturn: true,
media: false,
@@ -112,7 +113,11 @@ export const gemini15Pro = modelRef({
name: 'vertexai/gemini-1.5-pro',
info: {
label: 'Vertex AI - Gemini 1.5 Pro',
- versions: ['gemini-1.5-pro-001'],
+ versions: [
+ 'gemini-1.5-pro-001',
+ 'gemini-1.5-pro-002',
+ 'gemini-pro-experimental',
+ ],
supports: {
multiturn: true,
media: true,
@@ -159,7 +164,11 @@ export const gemini15Flash = modelRef({
name: 'vertexai/gemini-1.5-flash',
info: {
label: 'Vertex AI - Gemini 1.5 Flash',
- versions: ['gemini-1.5-flash-001'],
+ versions: [
+ 'gemini-1.5-flash-001',
+ 'gemini-1.5-flash-002',
+ 'gemini-flash-experimental',
+ ],
supports: {
multiturn: true,
media: true,
@@ -399,7 +408,10 @@ function fromGeminiFunctionResponsePart(part: GeminiPart): Part {
}
// Converts vertex part to genkit part
-function fromGeminiPart(part: GeminiPart): Part {
+function fromGeminiPart(part: GeminiPart, jsonMode: boolean): Part {
+ if (jsonMode && part.text !== undefined) {
+ return { data: extractJson(part.text) };
+ }
if (part.text !== undefined) return { text: part.text };
if (part.functionCall) return fromGeminiFunctionCallPart(part);
if (part.functionResponse) return fromGeminiFunctionResponsePart(part);
@@ -411,14 +423,15 @@ function fromGeminiPart(part: GeminiPart): Part {
}
export function fromGeminiCandidate(
- candidate: GenerateContentCandidate
+ candidate: GenerateContentCandidate,
+ jsonMode: boolean
): CandidateData {
const parts = candidate.content.parts || [];
const genkitCandidate: CandidateData = {
index: candidate.index || 0, // reasonable default?
message: {
role: 'model',
- content: parts.map(fromGeminiPart),
+ content: parts.map((p) => fromGeminiPart(p, jsonMode)),
},
finishReason: fromGeminiFinishReason(candidate.finishReason),
finishMessage: candidate.finishMessage,
@@ -518,11 +531,18 @@ export function geminiModel(
}
}
+ const tools = request.tools?.length
+ ? [{ functionDeclarations: request.tools?.map(toGeminiTool) }]
+ : [];
+
+ // Cannot use tools and function calling at the same time
+ const jsonMode =
+ (request.output?.format === 'json' || !!request.output?.schema) &&
+ tools.length === 0;
+
const chatRequest: StartChatParams = {
systemInstruction,
- tools: request.tools?.length
- ? [{ functionDeclarations: request.tools?.map(toGeminiTool) }]
- : [],
+ tools,
history: messages
.slice(0, -1)
.map((message) => toGeminiMessage(message, model)),
@@ -532,6 +552,7 @@ export function geminiModel(
maxOutputTokens: request.config?.maxOutputTokens,
topK: request.config?.topK,
topP: request.config?.topP,
+ responseMimeType: jsonMode ? 'application/json' : undefined,
stopSequences: request.config?.stopSequences,
},
safetySettings: request.config?.safetySettings,
@@ -566,7 +587,7 @@ export function geminiModel(
.sendMessageStream(msg.parts);
for await (const item of result.stream) {
(item as GenerateContentResponse).candidates?.forEach((candidate) => {
- const c = fromGeminiCandidate(candidate);
+ const c = fromGeminiCandidate(candidate, jsonMode);
streamingCallback({
index: c.index,
content: c.message.content,
@@ -578,7 +599,9 @@ export function geminiModel(
throw new Error('No valid candidates returned.');
}
return {
- candidates: response.candidates?.map(fromGeminiCandidate) || [],
+ candidates:
+ response.candidates?.map((c) => fromGeminiCandidate(c, jsonMode)) ||
+ [],
custom: response,
};
} else {
@@ -592,7 +615,9 @@ export function geminiModel(
throw new Error('No valid candidates returned.');
}
const responseCandidates =
- result.response.candidates?.map(fromGeminiCandidate) || [];
+ result.response.candidates?.map((c) =>
+ fromGeminiCandidate(c, jsonMode)
+ ) || [];
return {
candidates: responseCandidates,
custom: result.response,
diff --git a/js/plugins/vertexai/src/imagen.ts b/js/plugins/vertexai/src/imagen.ts
index 8c9e41c56..d961e6bd5 100644
--- a/js/plugins/vertexai/src/imagen.ts
+++ b/js/plugins/vertexai/src/imagen.ts
@@ -61,7 +61,40 @@ const ImagenConfigSchema = GenerationCommonConfigSchema.extend({
addWatermark: z.boolean().optional(),
/** Cloud Storage URI to store the generated images. **/
storageUri: z.string().optional(),
-});
+ /** Mode must be set for upscaling requests. */
+ mode: z.enum(['upscale']).optional(),
+ /**
+ * Describes the editing intention for the request.
+ *
+ * Refer to https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/imagen-api#edit_images_2 for details.
+ */
+ editConfig: z
+ .object({
+ /** Describes the editing intention for the request. */
+ editMode: z
+ .enum([
+ 'inpainting-insert',
+ 'inpainting-remove',
+ 'outpainting',
+ 'product-image',
+ ])
+ .optional(),
+ /** Prompts the model to generate a mask instead of you needing to provide one. Consequently, when you provide this parameter you can omit a mask object. */
+ maskMode: z
+ .object({
+ maskType: z.enum(['background', 'foreground', 'semantic']),
+ classes: z.array(z.number()).optional(),
+ })
+ .optional(),
+ maskDilation: z.number().optional(),
+ guidanceScale: z.number().optional(),
+ productPosition: z.enum(['reposition', 'fixed']).optional(),
+ })
+ .passthrough()
+ .optional(),
+ /** Upscale config object. */
+ upscaleConfig: z.object({ upscaleFactor: z.enum(['x2', 'x4']) }).optional(),
+}).passthrough();
export const imagen2 = modelRef({
name: 'vertexai/imagen2',
@@ -86,7 +119,7 @@ export const imagen3 = modelRef({
label: 'Vertex AI - Imagen3',
versions: ['imagen-3.0-generate-001'],
supports: {
- media: false,
+ media: true,
multiturn: false,
tools: false,
systemRole: false,
@@ -144,14 +177,7 @@ function toParameters(
): ImagenParameters {
const out = {
sampleCount: request.candidates ?? 1,
- aspectRatio: request.config?.aspectRatio,
- negativePrompt: request.config?.negativePrompt,
- seed: request.config?.seed,
- language: request.config?.language,
- personGeneration: request.config?.personGeneration,
- safetySetting: request.config?.safetySetting,
- addWatermark: request.config?.addWatermark,
- storageUri: request.config?.storageUri,
+ ...request?.config,
};
for (const k in out) {
@@ -161,10 +187,19 @@ function toParameters(
return out;
}
-function extractPromptImage(request: GenerateRequest): string | undefined {
+function extractMaskImage(request: GenerateRequest): string | undefined {
+ return request.messages
+ .at(-1)
+ ?.content.find((p) => !!p.media && p.metadata?.type === 'mask')
+ ?.media?.url.split(',')[1];
+}
+
+function extractBaseImage(request: GenerateRequest): string | undefined {
return request.messages
.at(-1)
- ?.content.find((p) => !!p.media)
+ ?.content.find(
+ (p) => !!p.media && (!p.metadata?.type || p.metadata?.type === 'base')
+ )
?.media?.url.split(',')[1];
}
@@ -176,6 +211,7 @@ interface ImagenPrediction {
interface ImagenInstance {
prompt: string;
image?: { bytesBase64Encoded: string };
+ mask?: { image?: { bytesBase64Encoded: string } };
}
export function imagenModel(
@@ -222,8 +258,16 @@ export function imagenModel(
const instance: ImagenInstance = {
prompt: extractText(request),
};
- if (extractPromptImage(request))
- instance.image = { bytesBase64Encoded: extractPromptImage(request)! };
+ const baseImage = extractBaseImage(request);
+ if (baseImage) {
+ instance.image = { bytesBase64Encoded: baseImage };
+ }
+ const maskImage = extractMaskImage(request);
+ if (maskImage) {
+ instance.mask = {
+ image: { bytesBase64Encoded: maskImage },
+ };
+ }
const req: any = {
instances: [instance],
diff --git a/js/plugins/vertexai/src/index.ts b/js/plugins/vertexai/src/index.ts
index 81cb22eb7..a0b599026 100644
--- a/js/plugins/vertexai/src/index.ts
+++ b/js/plugins/vertexai/src/index.ts
@@ -66,6 +66,7 @@ import {
SUPPORTED_OPENAI_FORMAT_MODELS,
llama3,
llama31,
+ llama32,
modelGardenOpenaiCompatibleModel,
} from './model_garden.js';
import {
@@ -104,6 +105,7 @@ export {
imagen3Fast,
llama3,
llama31,
+ llama32,
textEmbedding004,
textEmbeddingGecko,
textEmbeddingGecko001,
diff --git a/js/plugins/vertexai/src/model_garden.ts b/js/plugins/vertexai/src/model_garden.ts
index 96b569426..3d493fb79 100644
--- a/js/plugins/vertexai/src/model_garden.ts
+++ b/js/plugins/vertexai/src/model_garden.ts
@@ -29,6 +29,23 @@ export const ModelGardenModelConfigSchema = OpenAIConfigSchema.extend({
location: z.string().optional(),
});
+export const llama32 = modelRef({
+ name: 'vertexai/llama-3.2',
+ info: {
+ label: 'Llama 3.2',
+ supports: {
+ multiturn: true,
+ tools: true,
+ media: true,
+ systemRole: true,
+ output: ['text', 'json'],
+ },
+ versions: ['meta/llama-3.2-90b-vision-instruct-maas'],
+ },
+ configSchema: ModelGardenModelConfigSchema,
+ version: 'meta/llama-3.2-90b-vision-instruct-maas',
+});
+
export const llama31 = modelRef({
name: 'vertexai/llama-3.1',
info: {
@@ -72,6 +89,7 @@ export const llama3 = modelRef({
export const SUPPORTED_OPENAI_FORMAT_MODELS = {
'llama3-405b': llama3,
'llama-3.1': llama31,
+ 'llama-3.2': llama32,
};
export function modelGardenOpenaiCompatibleModel(
@@ -87,7 +105,6 @@ export function modelGardenOpenaiCompatibleModel(
baseUrlTemplate =
'https://{location}-aiplatform.googleapis.com/v1beta1/projects/{projectId}/locations/{location}/endpoints/openapi';
}
-
const clientFactory = async (
request: GenerateRequest
): Promise => {
diff --git a/js/pnpm-lock.yaml b/js/pnpm-lock.yaml
index 1c97b84df..fb9711d6c 100644
--- a/js/pnpm-lock.yaml
+++ b/js/pnpm-lock.yaml
@@ -48,6 +48,9 @@ importers:
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
tsup:
specifier: ^8.0.2
version: 8.0.2(typescript@4.9.5)
@@ -88,8 +91,8 @@ importers:
specifier: ^0.5.0
version: 0.5.0
express:
- specifier: ^4.19.2
- version: 4.19.2
+ specifier: ^4.21.0
+ version: 4.21.0
json-schema:
specifier: ^0.4.0
version: 0.4.0
@@ -109,6 +112,9 @@ importers:
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
tsup:
specifier: ^8.0.2
version: 8.0.2(typescript@4.9.5)
@@ -134,20 +140,20 @@ importers:
specifier: ^2.8.17
version: 2.8.17
body-parser:
- specifier: ^1.20.2
- version: 1.20.2
+ specifier: ^1.20.3
+ version: 1.20.3
cors:
specifier: ^2.8.5
version: 2.8.5
express:
- specifier: ^4.19.2
- version: 4.19.2
+ specifier: ^4.21.0
+ version: 4.21.0
firebase-admin:
- specifier: ^12.1.0
- version: 12.1.0(encoding@0.1.13)
+ specifier: '>=12.2'
+ version: 12.3.1(encoding@0.1.13)
firebase-functions:
- specifier: ^4.8.0 || ^5.0.0
- version: 5.0.1(firebase-admin@12.1.0(encoding@0.1.13))
+ specifier: '>=4.8'
+ version: 5.0.1(firebase-admin@12.3.1(encoding@0.1.13))
uuid:
specifier: ^9.0.1
version: 9.0.1
@@ -167,6 +173,9 @@ importers:
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
tsup:
specifier: ^8.0.2
version: 8.0.2(typescript@4.9.5)
@@ -187,7 +196,7 @@ importers:
version: link:../../core
chromadb:
specifier: ^1.7.3
- version: 1.8.1(encoding@0.1.13)(openai@4.53.0(encoding@0.1.13))
+ version: 1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))
ts-md5:
specifier: ^1.3.1
version: 1.3.1
@@ -201,6 +210,9 @@ importers:
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
tsup:
specifier: ^8.0.2
version: 8.0.2(typescript@4.9.5)
@@ -235,6 +247,9 @@ importers:
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
tsup:
specifier: ^8.0.2
version: 8.0.2(typescript@4.9.5)
@@ -272,6 +287,9 @@ importers:
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
tsup:
specifier: ^8.0.2
version: 8.0.2(typescript@4.9.5)
@@ -315,6 +333,9 @@ importers:
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
tsup:
specifier: ^8.0.2
version: 8.0.2(typescript@4.9.5)
@@ -340,17 +361,17 @@ importers:
specifier: workspace:*
version: link:../google-cloud
'@google-cloud/firestore':
- specifier: ^7.6.0
- version: 7.6.0(encoding@0.1.13)
+ specifier: '>7.6'
+ version: 7.9.0(encoding@0.1.13)
express:
- specifier: ^4.19.2
- version: 4.19.2
+ specifier: ^4.21.0
+ version: 4.21.0
firebase-admin:
- specifier: ^12.2.0
- version: 12.2.0(encoding@0.1.13)
+ specifier: '>=12.2'
+ version: 12.3.1(encoding@0.1.13)
firebase-functions:
- specifier: ^4.8.0 || ^5.0.0
- version: 4.8.1(encoding@0.1.13)(firebase-admin@12.2.0(encoding@0.1.13))
+ specifier: '>=4.8'
+ version: 5.0.1(firebase-admin@12.3.1(encoding@0.1.13))
google-auth-library:
specifier: ^9.6.3
version: 9.7.0(encoding@0.1.13)
@@ -364,6 +385,9 @@ importers:
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
tsup:
specifier: ^8.0.2
version: 8.0.2(typescript@4.9.5)
@@ -389,11 +413,11 @@ importers:
specifier: ^0.19.0
version: 0.19.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)
'@google-cloud/opentelemetry-cloud-trace-exporter':
- specifier: ^2.1.0
- version: 2.1.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.26.0)(encoding@0.1.13)
+ specifier: ^2.4.1
+ version: 2.4.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)
'@google-cloud/opentelemetry-resource-util':
- specifier: ^2.1.0
- version: 2.1.0(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.26.0)(encoding@0.1.13)
+ specifier: ^2.4.0
+ version: 2.4.0(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)
'@opentelemetry/api':
specifier: ^1.9.0
version: 1.9.0
@@ -433,6 +457,9 @@ importers:
prettier-plugin-organize-imports:
specifier: ^3.2.4
version: 3.2.4(prettier@3.2.5)(typescript@4.9.5)
+ truncate-utf8-bytes:
+ specifier: ^1.0.2
+ version: 1.0.2
winston:
specifier: ^3.12.0
version: 3.13.0
@@ -449,6 +476,9 @@ importers:
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
tsup:
specifier: ^8.0.2
version: 8.0.2(typescript@4.9.5)
@@ -486,6 +516,9 @@ importers:
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
tsup:
specifier: ^8.0.2
version: 8.0.2(typescript@4.9.5)
@@ -508,8 +541,8 @@ importers:
specifier: workspace:*
version: link:../../flow
'@langchain/community':
- specifier: ^0.0.53
- version: 0.0.53(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.53.0(encoding@0.1.13)))(encoding@0.1.13)(firebase-admin@12.3.1(encoding@0.1.13))(google-auth-library@8.9.0(encoding@0.1.13))(jsonwebtoken@9.0.2)
+ specifier: ^0.3.3
+ version: 0.3.3(@google-cloud/storage@7.10.1(encoding@0.1.13))(@langchain/core@0.1.61)(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4)))(encoding@0.1.13)(firebase-admin@12.3.1(encoding@0.1.13))(google-auth-library@8.9.0(encoding@0.1.13))(handlebars@4.7.8)(ignore@5.3.1)(jsonwebtoken@9.0.2)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))(pdf-parse@1.1.1)
'@langchain/core':
specifier: ^0.1.61
version: 0.1.61
@@ -518,7 +551,7 @@ importers:
version: 1.9.0
langchain:
specifier: ^0.1.36
- version: 0.1.36(@google-cloud/storage@7.10.1(encoding@0.1.13))(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.53.0(encoding@0.1.13)))(encoding@0.1.13)(fast-xml-parser@4.3.6)(firebase-admin@12.3.1(encoding@0.1.13))(google-auth-library@8.9.0(encoding@0.1.13))(handlebars@4.7.8)(ignore@5.3.1)(jsonwebtoken@9.0.2)(pdf-parse@1.1.1)
+ version: 0.1.36(@google-cloud/storage@7.10.1(encoding@0.1.13))(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4)))(encoding@0.1.13)(fast-xml-parser@4.3.6)(firebase-admin@12.3.1(encoding@0.1.13))(google-auth-library@8.9.0(encoding@0.1.13))(handlebars@4.7.8)(ignore@5.3.1)(jsonwebtoken@9.0.2)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))(pdf-parse@1.1.1)
zod:
specifier: ^3.22.4
version: 3.22.4
@@ -529,6 +562,9 @@ importers:
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
tsup:
specifier: ^8.0.2
version: 8.0.2(typescript@4.9.5)
@@ -547,6 +583,9 @@ importers:
'@genkit-ai/core':
specifier: workspace:*
version: link:../../core
+ zod:
+ specifier: ^3.22.4
+ version: 3.22.4
devDependencies:
'@types/node':
specifier: ^20.11.16
@@ -554,6 +593,9 @@ importers:
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
tsup:
specifier: ^8.0.2
version: 8.0.2(typescript@4.9.5)
@@ -588,6 +630,9 @@ importers:
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
tsup:
specifier: ^8.0.2
version: 8.0.2(typescript@4.9.5)
@@ -619,11 +664,11 @@ importers:
specifier: ^3.23.0
version: 3.25.0(encoding@0.1.13)
'@google-cloud/vertexai':
- specifier: ^1.1.0
- version: 1.1.0(encoding@0.1.13)
+ specifier: ^1.7.0
+ version: 1.7.0(encoding@0.1.13)
google-auth-library:
- specifier: ^9.6.3
- version: 9.7.0(encoding@0.1.13)
+ specifier: ^9.14.1
+ version: 9.14.1(encoding@0.1.13)
googleapis:
specifier: ^140.0.1
version: 140.0.1(encoding@0.1.13)
@@ -641,8 +686,8 @@ importers:
specifier: ^7.8.0
version: 7.8.0(encoding@0.1.13)
firebase-admin:
- specifier: ^12.1.0
- version: 12.2.0(encoding@0.1.13)
+ specifier: '>=12.2'
+ version: 12.3.1(encoding@0.1.13)
devDependencies:
'@types/node':
specifier: ^20.11.16
@@ -650,6 +695,9 @@ importers:
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
tsup:
specifier: ^8.0.2
version: 8.0.2(typescript@4.9.5)
@@ -681,8 +729,8 @@ importers:
specifier: workspace:*
version: link:../../plugins/vertexai
express:
- specifier: ^4.19.2
- version: 4.19.2
+ specifier: ^4.21.0
+ version: 4.21.0
zod:
specifier: 3.22.4
version: 3.22.4
@@ -691,6 +739,37 @@ importers:
specifier: ^5.5.3
version: 5.5.3
+ testapps/basic-gemini:
+ dependencies:
+ '@genkit-ai/ai':
+ specifier: workspace:*
+ version: link:../../ai
+ '@genkit-ai/core':
+ specifier: workspace:*
+ version: link:../../core
+ '@genkit-ai/dotprompt':
+ specifier: workspace:*
+ version: link:../../plugins/dotprompt
+ '@genkit-ai/flow':
+ specifier: workspace:*
+ version: link:../../flow
+ '@genkit-ai/googleai':
+ specifier: workspace:*
+ version: link:../../plugins/googleai
+ '@genkit-ai/vertexai':
+ specifier: workspace:*
+ version: link:../../plugins/vertexai
+ express:
+ specifier: ^4.21.0
+ version: 4.21.0
+ zod:
+ specifier: ^3.22.4
+ version: 3.22.4
+ devDependencies:
+ typescript:
+ specifier: ^5.6.2
+ version: 5.6.2
+
testapps/byo-evaluator:
dependencies:
'@genkit-ai/ai':
@@ -727,6 +806,9 @@ importers:
specifier: ^3.22.4
version: 3.22.4
devDependencies:
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
typescript:
specifier: ^5.3.3
version: 5.4.5
@@ -767,7 +849,7 @@ importers:
specifier: ^1.22.0
version: 1.25.1(@opentelemetry/api@1.9.0)
firebase-admin:
- specifier: ^12.3.0
+ specifier: '>=12.2'
version: 12.3.1(encoding@0.1.13)
genkitx-pinecone:
specifier: workspace:*
@@ -791,6 +873,9 @@ importers:
'@types/pdf-parse':
specifier: ^1.1.4
version: 1.1.4
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
typescript:
specifier: ^5.3.3
version: 5.4.5
@@ -825,8 +910,8 @@ importers:
specifier: workspace:*
version: link:../../plugins/vertexai
firebase-admin:
- specifier: ^12.1.0
- version: 12.1.0(encoding@0.1.13)
+ specifier: '>=12.2'
+ version: 12.3.1(encoding@0.1.13)
genkitx-chromadb:
specifier: workspace:*
version: link:../../plugins/chroma
@@ -840,6 +925,9 @@ importers:
specifier: ^3.22.4
version: 3.22.4
devDependencies:
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
typescript:
specifier: ^5.3.3
version: 5.4.5
@@ -862,12 +950,15 @@ importers:
specifier: workspace:*
version: link:../../plugins/googleai
express:
- specifier: ^4.19.2
- version: 4.19.2
+ specifier: ^4.21.0
+ version: 4.21.0
zod:
specifier: ^3.22.4
version: 3.22.4
devDependencies:
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
typescript:
specifier: ^5.3.3
version: 5.4.5
@@ -905,6 +996,9 @@ importers:
'@types/pdf-parse':
specifier: ^1.1.4
version: 1.1.4
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
typescript:
specifier: ^5.3.3
version: 5.4.5
@@ -933,6 +1027,9 @@ importers:
specifier: ^3.22.4
version: 3.22.4
devDependencies:
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
typescript:
specifier: ^5.3.3
version: 5.4.5
@@ -967,6 +1064,9 @@ importers:
specifier: ^3.22.4
version: 3.22.4
devDependencies:
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
typescript:
specifier: ^5.3.3
version: 5.4.5
@@ -992,8 +1092,8 @@ importers:
specifier: workspace:*
version: link:../../plugins/vertexai
express:
- specifier: ~4.19.2
- version: 4.19.2
+ specifier: ~4.20.0
+ version: 4.20.0
genkitx-ollama:
specifier: workspace:*
version: link:../../plugins/ollama
@@ -1004,6 +1104,9 @@ importers:
'@types/express':
specifier: ^4.17.21
version: 4.17.21
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
typescript:
specifier: ^5.3.3
version: 5.4.5
@@ -1023,6 +1126,9 @@ importers:
specifier: ^3.22.4
version: 3.22.4
devDependencies:
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
typescript:
specifier: ^5.3.3
version: 5.4.5
@@ -1060,8 +1166,8 @@ importers:
specifier: ^1.25.0
version: 1.25.1(@opentelemetry/api@1.9.0)
firebase-admin:
- specifier: ^12.1.0
- version: 12.1.0(encoding@0.1.13)
+ specifier: '>=12.2'
+ version: 12.3.1(encoding@0.1.13)
partial-json:
specifier: ^0.1.7
version: 0.1.7
@@ -1069,6 +1175,9 @@ importers:
specifier: ^3.22.4
version: 3.22.4
devDependencies:
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
typescript:
specifier: ^5.3.3
version: 5.4.5
@@ -1097,8 +1206,8 @@ importers:
specifier: ^16.4.5
version: 16.4.5
express:
- specifier: ^4.19.2
- version: 4.19.2
+ specifier: ^4.21.0
+ version: 4.21.0
zod:
specifier: 3.22.4
version: 3.22.4
@@ -1128,8 +1237,8 @@ importers:
specifier: workspace:*
version: link:../../plugins/vertexai
'@langchain/community':
- specifier: ^0.0.53
- version: 0.0.53(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.53.0(encoding@0.1.13)))(encoding@0.1.13)(firebase-admin@12.3.1(encoding@0.1.13))(google-auth-library@8.9.0(encoding@0.1.13))(jsonwebtoken@9.0.2)
+ specifier: ^0.3.3
+ version: 0.3.3(@google-cloud/storage@7.10.1(encoding@0.1.13))(@langchain/core@0.1.61)(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4)))(encoding@0.1.13)(firebase-admin@12.3.1(encoding@0.1.13))(google-auth-library@9.14.1(encoding@0.1.13))(googleapis@140.0.1(encoding@0.1.13))(handlebars@4.7.8)(ignore@5.3.1)(jsonwebtoken@9.0.2)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))(pdf-parse@1.1.1)
'@langchain/core':
specifier: ^0.1.61
version: 0.1.61
@@ -1137,8 +1246,8 @@ importers:
specifier: ^1.9.0
version: 1.9.0
express:
- specifier: ~4.19.2
- version: 4.19.2
+ specifier: ~4.20.0
+ version: 4.20.0
genkitx-langchain:
specifier: workspace:*
version: link:../../plugins/langchain
@@ -1146,8 +1255,8 @@ importers:
specifier: workspace:*
version: link:../../plugins/ollama
langchain:
- specifier: ^0.1.36
- version: 0.1.36(@google-cloud/storage@7.10.1(encoding@0.1.13))(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.53.0(encoding@0.1.13)))(encoding@0.1.13)(fast-xml-parser@4.3.6)(firebase-admin@12.3.1(encoding@0.1.13))(google-auth-library@8.9.0(encoding@0.1.13))(handlebars@4.7.8)(ignore@5.3.1)(jsonwebtoken@9.0.2)(pdf-parse@1.1.1)
+ specifier: ^0.2.19
+ version: 0.2.19(@langchain/community@0.3.3(@google-cloud/storage@7.10.1(encoding@0.1.13))(@langchain/core@0.1.61)(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4)))(encoding@0.1.13)(firebase-admin@12.3.1(encoding@0.1.13))(google-auth-library@9.14.1(encoding@0.1.13))(googleapis@140.0.1(encoding@0.1.13))(handlebars@4.7.8)(ignore@5.3.1)(jsonwebtoken@9.0.2)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))(pdf-parse@1.1.1))(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4)))(encoding@0.1.13)(fast-xml-parser@4.3.6)(handlebars@4.7.8)(ignore@5.3.1)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))(pdf-parse@1.1.1)
pdf-parse:
specifier: ^1.1.1
version: 1.1.1
@@ -1158,6 +1267,9 @@ importers:
'@types/express':
specifier: ^4.17.21
version: 4.17.21
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
typescript:
specifier: ^5.3.3
version: 5.4.5
@@ -1183,6 +1295,9 @@ importers:
specifier: ^3.22.4
version: 3.22.4
devDependencies:
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
typescript:
specifier: ^5.3.3
version: 5.4.5
@@ -1217,6 +1332,9 @@ importers:
specifier: ^3.22.4
version: 3.22.4
devDependencies:
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
typescript:
specifier: ^5.3.3
version: 5.4.5
@@ -1346,8 +1464,8 @@ importers:
specifier: ^16.4.5
version: 16.4.5
express:
- specifier: ^4.19.2
- version: 4.19.2
+ specifier: ^4.21.0
+ version: 4.21.0
genkitx-chromadb:
specifier: workspace:*
version: link:../../plugins/chroma
@@ -1364,6 +1482,9 @@ importers:
specifier: 3.22.4
version: 3.22.4
devDependencies:
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
typescript:
specifier: ^5.5.2
version: 5.5.3
@@ -1404,8 +1525,8 @@ importers:
specifier: ^16.4.5
version: 16.4.5
express:
- specifier: ^4.19.2
- version: 4.19.2
+ specifier: ^4.21.0
+ version: 4.21.0
genkitx-chromadb:
specifier: workspace:*
version: link:../../plugins/chroma
@@ -1422,6 +1543,9 @@ importers:
specifier: 3.22.4
version: 3.22.4
devDependencies:
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
typescript:
specifier: ^5.5.2
version: 5.5.3
@@ -1459,11 +1583,11 @@ importers:
specifier: ^16.4.5
version: 16.4.5
express:
- specifier: ^4.19.2
- version: 4.19.2
+ specifier: ^4.21.0
+ version: 4.21.0
firebase-admin:
- specifier: ^12.1.0
- version: 12.2.0(encoding@0.1.13)
+ specifier: '>=12.2'
+ version: 12.3.1(encoding@0.1.13)
genkitx-chromadb:
specifier: workspace:*
version: link:../../plugins/chroma
@@ -1480,6 +1604,9 @@ importers:
specifier: 3.22.4
version: 3.22.4
devDependencies:
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
typescript:
specifier: ^5.5.2
version: 5.5.3
@@ -1640,10 +1767,6 @@ packages:
cpu: [x64]
os: [win32]
- '@fastify/busboy@2.1.1':
- resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==}
- engines: {node: '>=14'}
-
'@fastify/busboy@3.0.0':
resolution: {integrity: sha512-83rnH2nCvclWaPQQKvkJ2pdOjG4TZyEVuFDnlOF6KP08lDaaceVyw/W63mDuafQT+MKHCvXIPpE5uYWeM0rT4w==}
@@ -1690,10 +1813,6 @@ packages:
resolution: {integrity: sha512-WUDbaLY8UnPxgwsyIaxj6uxCtSDAaUyvzWJykNH5rZ9i92/SZCsPNNMN0ajrVpAR81hPIL4amXTaMJ40y5L+Yg==}
engines: {node: '>=14.0.0'}
- '@google-cloud/firestore@7.8.0':
- resolution: {integrity: sha512-m21BWVZLz7H7NF8HZ5hCGUSCEJKNwYB5yzQqDTuE9YUzNDRMDei3BwVDht5k4xF636sGlnobyBL+dcbthSGONg==}
- engines: {node: '>=14.0.0'}
-
'@google-cloud/firestore@7.9.0':
resolution: {integrity: sha512-c4ALHT3G08rV7Zwv8Z2KG63gZh66iKdhCBeDfCpIkLrjX6EAjTD/szMdj14M+FnQuClZLFfW5bAgoOjfNmLtJg==}
engines: {node: '>=14.0.0'}
@@ -1704,8 +1823,8 @@ packages:
peerDependencies:
winston: '>=3.2.1'
- '@google-cloud/logging@11.0.0':
- resolution: {integrity: sha512-uQeReiVICoV5yt9J/cczNxHxqzTkLLG7yGHXCMAk/wQNVZGevT4Bi7CBWpt0aXxm044a76Aj6V08cCAlBj7UZw==}
+ '@google-cloud/logging@11.2.0':
+ resolution: {integrity: sha512-Ma94jvuoMpbgNniwtelOt8w82hxK62FuOXZonEv0Hyk3B+/YVuLG/SWNyY9yMso/RXnPEc1fP2qo9kDrjf/b2w==}
engines: {node: '>=14.0.0'}
'@google-cloud/opentelemetry-cloud-monitoring-exporter@0.19.0':
@@ -1717,8 +1836,8 @@ packages:
'@opentelemetry/resources': ^1.0.0
'@opentelemetry/sdk-metrics': ^1.0.0
- '@google-cloud/opentelemetry-cloud-trace-exporter@2.1.0':
- resolution: {integrity: sha512-6IPFnWG4edDgNfgLxXJjTjNYGAW8ZQ7Oz7eGZJMgQsIiEALNIAk4e/MgccglL3yh5ReONY3YePcGRWQKPbxmUg==}
+ '@google-cloud/opentelemetry-cloud-trace-exporter@2.4.1':
+ resolution: {integrity: sha512-Dq2IyAyA9PCjbjLOn86i2byjkYPC59b5ic8k/L4q5bBWH0Jro8lzMs8C0G5pJfqh2druj8HF+oAIAlSdWQ+Z9Q==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.0.0
@@ -1726,15 +1845,8 @@ packages:
'@opentelemetry/resources': ^1.0.0
'@opentelemetry/sdk-trace-base': ^1.0.0
- '@google-cloud/opentelemetry-resource-util@2.1.0':
- resolution: {integrity: sha512-/Qqnm6f10e89Txt39qpIhD+LCOF80artYOVwNF1ZAzgJFxBldEniNkf19SR+q9LAp75ZZWKyhRlumM1V7fT8gw==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/resources': ^1.0.0
- '@opentelemetry/semantic-conventions': ^1.0.0
-
- '@google-cloud/opentelemetry-resource-util@2.3.0':
- resolution: {integrity: sha512-3yyG2IiOWXy23IIGW4rRaqVf0efsgkUyXLvDpCxiZPPIgSAevYVdfcJ2cQSp4d1y+2NCpS2Wq0XLbTLzTw/j5Q==}
+ '@google-cloud/opentelemetry-resource-util@2.4.0':
+ resolution: {integrity: sha512-/7ujlMoKtDtrbQlJihCjQnm31n2s2RTlvJqcSbt2jV3OkCzPAdo3u31Q13HNugqtIRUSk7bUoLx6AzhURkhW4w==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/resources': ^1.0.0
@@ -1763,8 +1875,8 @@ packages:
resolution: {integrity: sha512-sZW14pfxEQZSIbBPs6doFYtcbK31Bs3E4jH5Ly3jJnBkYfkMPX8sXG3ZQXCJa88MKtUNPlgBdMN2OJUzmFe5/g==}
engines: {node: '>=14'}
- '@google-cloud/vertexai@1.1.0':
- resolution: {integrity: sha512-hfwfdlVpJ+kM6o2b5UFfPnweBcz8tgHAFRswnqUKYqLJsvKU0DDD0Z2/YKoHyAUoPJAv20qg6KlC3msNeUKUiw==}
+ '@google-cloud/vertexai@1.7.0':
+ resolution: {integrity: sha512-N4YcVzFQ+sPN9c3SeMhbpLfWVbeaLxPbICKsJ6yKthcr4G7tdu9pCs3HUw+Mip0M2xgiKZ8/WWvq6FXbPnlrUA==}
engines: {node: '>=18.0.0'}
'@google/generative-ai@0.15.0':
@@ -2100,213 +2212,597 @@ packages:
ws:
optional: true
- '@langchain/core@0.1.61':
- resolution: {integrity: sha512-C8OkAly+ugvXsL8TACCmFv9WTTcT4gvQaG6NbrXCOzibBCywfxxcTqEMOyg3zIKpxHEmR0DHqh0OiJRHocnsCg==}
- engines: {node: '>=18'}
-
- '@langchain/openai@0.0.28':
- resolution: {integrity: sha512-2s1RA3/eAnz4ahdzsMPBna9hfAqpFNlWdHiPxVGZ5yrhXsbLWWoPcF+22LCk9t0HJKtazi2GCIWc0HVXH9Abig==}
- engines: {node: '>=18'}
-
- '@langchain/textsplitters@0.0.0':
- resolution: {integrity: sha512-3hPesWomnmVeYMppEGYbyv0v/sRUugUdlFBNn9m1ueJYHAIKbvCErkWxNUH3guyKKYgJVrkvZoQxcd9faucSaw==}
+ '@langchain/community@0.3.3':
+ resolution: {integrity: sha512-445g9hBeBNndNC8ruQIO/sNbHYBL3jjrPuDW+/S6e/RAXo8whJA/02CWRcSMDYX3o4+1Brrg6rFimipOuM9M9w==}
engines: {node: '>=18'}
-
- '@mapbox/node-pre-gyp@1.0.11':
- resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==}
- hasBin: true
-
- '@nodelib/fs.scandir@2.1.5':
- resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
- engines: {node: '>= 8'}
-
- '@nodelib/fs.stat@2.0.5':
- resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
- engines: {node: '>= 8'}
-
- '@nodelib/fs.walk@1.2.8':
- resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
- engines: {node: '>= 8'}
-
- '@opentelemetry/api-logs@0.52.1':
- resolution: {integrity: sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A==}
- engines: {node: '>=14'}
-
- '@opentelemetry/api@1.9.0':
- resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
- engines: {node: '>=8.0.0'}
-
- '@opentelemetry/auto-instrumentations-node@0.49.1':
- resolution: {integrity: sha512-oF8g0cOEL4u1xkoAgSFAhOwMVVwDyZod6g1hVL1TtmpHTGMeEP2FfM6pPHE1soAFyddxd4B3NahZX3xczEbLdA==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.4.1
-
- '@opentelemetry/context-async-hooks@1.25.1':
- resolution: {integrity: sha512-UW/ge9zjvAEmRWVapOP0qyCvPulWU6cQxGxDbWEFfGOj1VBBZAuOqTo3X6yWmDTD3Xe15ysCZChHncr2xFMIfQ==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': '>=1.0.0 <1.10.0'
-
- '@opentelemetry/core@1.25.1':
- resolution: {integrity: sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': '>=1.0.0 <1.10.0'
-
- '@opentelemetry/exporter-trace-otlp-grpc@0.52.1':
- resolution: {integrity: sha512-pVkSH20crBwMTqB3nIN4jpQKUEoB0Z94drIHpYyEqs7UBr+I0cpYyOR3bqjA/UasQUMROb3GX8ZX4/9cVRqGBQ==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.0.0
-
- '@opentelemetry/exporter-trace-otlp-http@0.52.1':
- resolution: {integrity: sha512-05HcNizx0BxcFKKnS5rwOV+2GevLTVIRA0tRgWYyw4yCgR53Ic/xk83toYKts7kbzcI+dswInUg/4s8oyA+tqg==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.0.0
-
- '@opentelemetry/exporter-trace-otlp-proto@0.52.1':
- resolution: {integrity: sha512-pt6uX0noTQReHXNeEslQv7x311/F1gJzMnp1HD2qgypLRPbXDeMzzeTngRTUaUbP6hqWNtPxuLr4DEoZG+TcEQ==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.0.0
-
- '@opentelemetry/exporter-zipkin@1.25.1':
- resolution: {integrity: sha512-RmOwSvkimg7ETwJbUOPTMhJm9A9bG1U8s7Zo3ajDh4zM7eYcycQ0dM7FbLD6NXWbI2yj7UY4q8BKinKYBQksyw==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.0.0
-
- '@opentelemetry/instrumentation-amqplib@0.41.0':
- resolution: {integrity: sha512-00Oi6N20BxJVcqETjgNzCmVKN+I5bJH/61IlHiIWd00snj1FdgiIKlpE4hYVacTB2sjIBB3nTbHskttdZEE2eg==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-aws-lambda@0.43.0':
- resolution: {integrity: sha512-pSxcWlsE/pCWQRIw92sV2C+LmKXelYkjkA7C5s39iPUi4pZ2lA1nIiw+1R/y2pDEhUHcaKkNyljQr3cx9ZpVlQ==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-aws-sdk@0.43.1':
- resolution: {integrity: sha512-qLT2cCniJ5W+6PFzKbksnoIQuq9pS83nmgaExfUwXVvlwi0ILc50dea0tWBHZMkdIDa/zZdcuFrJ7+fUcSnRow==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-bunyan@0.40.0':
- resolution: {integrity: sha512-aZ4cXaGWwj79ZXSYrgFVsrDlE4mmf2wfvP9bViwRc0j75A6eN6GaHYHqufFGMTCqASQn5pIjjP+Bx+PWTGiofw==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-cassandra-driver@0.40.0':
- resolution: {integrity: sha512-JxbM39JU7HxE9MTKKwi6y5Z3mokjZB2BjwfqYi4B3Y29YO3I42Z7eopG6qq06yWZc+nQli386UDQe0d9xKmw0A==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-connect@0.38.0':
- resolution: {integrity: sha512-2/nRnx3pjYEmdPIaBwtgtSviTKHWnDZN3R+TkRUnhIVrvBKVcq+I5B2rtd6mr6Fe9cHlZ9Ojcuh7pkNh/xdWWg==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-cucumber@0.8.0':
- resolution: {integrity: sha512-ieTm4RBIlZt2brPwtX5aEZYtYnkyqhAVXJI9RIohiBVMe5DxiwCwt+2Exep/nDVqGPX8zRBZUl4AEw423OxJig==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.0.0
-
- '@opentelemetry/instrumentation-dataloader@0.11.0':
- resolution: {integrity: sha512-27urJmwkH4KDaMJtEv1uy2S7Apk4XbN4AgWMdfMJbi7DnOduJmeuA+DpJCwXB72tEWXo89z5T3hUVJIDiSNmNw==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-dns@0.38.0':
- resolution: {integrity: sha512-Um07I0TQXDWa+ZbEAKDFUxFH40dLtejtExDOMLNJ1CL8VmOmA71qx93Qi/QG4tGkiI1XWqr7gF/oiMCJ4m8buQ==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-express@0.41.1':
- resolution: {integrity: sha512-uRx0V3LPGzjn2bxAnV8eUsDT82vT7NTwI0ezEuPMBOTOsnPpGhWdhcdNdhH80sM4TrWrOfXm9HGEdfWE3TRIww==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-fastify@0.38.0':
- resolution: {integrity: sha512-HBVLpTSYpkQZ87/Df3N0gAw7VzYZV3n28THIBrJWfuqw3Or7UqdhnjeuMIPQ04BKk3aZc0cWn2naSQObbh5vXw==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-fs@0.14.0':
- resolution: {integrity: sha512-pVc8P5AgliC1DphyyBUgsxXlm2XaPH4BpYvt7rAZDMIqUpRk8gs19SioABtKqqxvFzg5jPtgJfJsdxq0Y+maLw==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-generic-pool@0.38.0':
- resolution: {integrity: sha512-0/ULi6pIco1fEnDPmmAul8ZoudFL7St0hjgBbWZlZPBCSyslDll1J7DFeEbjiRSSyUd+0tu73ae0DOKVKNd7VA==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-graphql@0.42.0':
- resolution: {integrity: sha512-N8SOwoKL9KQSX7z3gOaw5UaTeVQcfDO1c21csVHnmnmGUoqsXbArK2B8VuwPWcv6/BC/i3io+xTo7QGRZ/z28Q==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-grpc@0.52.1':
- resolution: {integrity: sha512-EdSDiDSAO+XRXk/ZN128qQpBo1I51+Uay/LUPcPQhSRGf7fBPIEUBeOLQiItguGsug5MGOYjql2w/1wCQF3fdQ==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-hapi@0.40.0':
- resolution: {integrity: sha512-8U/w7Ifumtd2bSN1OLaSwAAFhb9FyqWUki3lMMB0ds+1+HdSxYBe9aspEJEgvxAqOkrQnVniAPTEGf1pGM7SOw==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-http@0.52.1':
- resolution: {integrity: sha512-dG/aevWhaP+7OLv4BQQSEKMJv8GyeOp3Wxl31NHqE8xo9/fYMfEljiZphUHIfyg4gnZ9swMyWjfOQs5GUQe54Q==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-ioredis@0.42.0':
- resolution: {integrity: sha512-P11H168EKvBB9TUSasNDOGJCSkpT44XgoM6d3gRIWAa9ghLpYhl0uRkS8//MqPzcJVHr3h3RmfXIpiYLjyIZTw==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-kafkajs@0.2.0':
- resolution: {integrity: sha512-uKKmhEFd0zR280tJovuiBG7cfnNZT4kvVTvqtHPxQP7nOmRbJstCYHFH13YzjVcKjkmoArmxiSulmZmF7SLIlg==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-knex@0.39.0':
- resolution: {integrity: sha512-lRwTqIKQecPWDkH1KEcAUcFhCaNssbKSpxf4sxRTAROCwrCEnYkjOuqJHV+q1/CApjMTaKu0Er4LBv/6bDpoxA==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-koa@0.42.0':
- resolution: {integrity: sha512-H1BEmnMhho8o8HuNRq5zEI4+SIHDIglNB7BPKohZyWG4fWNuR7yM4GTlR01Syq21vODAS7z5omblScJD/eZdKw==}
- engines: {node: '>=14'}
peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-lru-memoizer@0.39.0':
- resolution: {integrity: sha512-eU1Wx1RRTR/2wYXFzH9gcpB8EPmhYlNDIUHzUXjyUE0CAXEJhBLkYNlzdaVCoQDw2neDqS+Woshiia6+emWK9A==}
- engines: {node: '>=14'}
+ '@arcjet/redact': ^v1.0.0-alpha.23
+ '@aws-crypto/sha256-js': ^5.0.0
+ '@aws-sdk/client-bedrock-agent-runtime': ^3.583.0
+ '@aws-sdk/client-bedrock-runtime': ^3.422.0
+ '@aws-sdk/client-dynamodb': ^3.310.0
+ '@aws-sdk/client-kendra': ^3.352.0
+ '@aws-sdk/client-lambda': ^3.310.0
+ '@aws-sdk/client-s3': ^3.310.0
+ '@aws-sdk/client-sagemaker-runtime': ^3.310.0
+ '@aws-sdk/client-sfn': ^3.310.0
+ '@aws-sdk/credential-provider-node': ^3.388.0
+ '@azure/search-documents': ^12.0.0
+ '@azure/storage-blob': ^12.15.0
+ '@browserbasehq/sdk': '*'
+ '@clickhouse/client': ^0.2.5
+ '@cloudflare/ai': '*'
+ '@datastax/astra-db-ts': ^1.0.0
+ '@elastic/elasticsearch': ^8.4.0
+ '@getmetal/metal-sdk': '*'
+ '@getzep/zep-cloud': ^1.0.6
+ '@getzep/zep-js': ^0.9.0
+ '@gomomento/sdk': ^1.51.1
+ '@gomomento/sdk-core': ^1.51.1
+ '@google-ai/generativelanguage': '*'
+ '@google-cloud/storage': ^6.10.1 || ^7.7.0
+ '@gradientai/nodejs-sdk': ^1.2.0
+ '@huggingface/inference': ^2.6.4
+ '@langchain/core': '>=0.2.21 <0.4.0'
+ '@layerup/layerup-security': ^1.5.12
+ '@mendable/firecrawl-js': ^0.0.13
+ '@mlc-ai/web-llm': '*'
+ '@mozilla/readability': '*'
+ '@neondatabase/serverless': '*'
+ '@notionhq/client': ^2.2.10
+ '@opensearch-project/opensearch': '*'
+ '@pinecone-database/pinecone': '*'
+ '@planetscale/database': ^1.8.0
+ '@premai/prem-sdk': ^0.3.25
+ '@qdrant/js-client-rest': ^1.8.2
+ '@raycast/api': ^1.55.2
+ '@rockset/client': ^0.9.1
+ '@smithy/eventstream-codec': ^2.0.5
+ '@smithy/protocol-http': ^3.0.6
+ '@smithy/signature-v4': ^2.0.10
+ '@smithy/util-utf8': ^2.0.0
+ '@spider-cloud/spider-client': ^0.0.21
+ '@supabase/supabase-js': ^2.45.0
+ '@tensorflow-models/universal-sentence-encoder': '*'
+ '@tensorflow/tfjs-converter': '*'
+ '@tensorflow/tfjs-core': '*'
+ '@upstash/ratelimit': ^1.1.3 || ^2.0.3
+ '@upstash/redis': ^1.20.6
+ '@upstash/vector': ^1.1.1
+ '@vercel/kv': ^0.2.3
+ '@vercel/postgres': ^0.5.0
+ '@writerai/writer-sdk': ^0.40.2
+ '@xata.io/client': ^0.28.0
+ '@xenova/transformers': ^2.17.2
+ '@zilliz/milvus2-sdk-node': '>=2.3.5'
+ apify-client: ^2.7.1
+ assemblyai: ^4.6.0
+ better-sqlite3: '>=9.4.0 <12.0.0'
+ cassandra-driver: ^4.7.2
+ cborg: ^4.1.1
+ cheerio: ^1.0.0-rc.12
+ chromadb: '*'
+ closevector-common: 0.1.3
+ closevector-node: 0.1.6
+ closevector-web: 0.1.6
+ cohere-ai: '*'
+ convex: ^1.3.1
+ couchbase: ^4.3.0
+ crypto-js: ^4.2.0
+ d3-dsv: ^2.0.0
+ discord.js: ^14.14.1
+ dria: ^0.0.3
+ duck-duck-scrape: ^2.2.5
+ epub2: ^3.0.1
+ faiss-node: ^0.5.1
+ firebase-admin: ^11.9.0 || ^12.0.0
+ google-auth-library: '*'
+ googleapis: '*'
+ hnswlib-node: ^3.0.0
+ html-to-text: ^9.0.5
+ ignore: ^5.2.0
+ interface-datastore: ^8.2.11
+ ioredis: ^5.3.2
+ it-all: ^3.0.4
+ jsdom: '*'
+ jsonwebtoken: ^9.0.2
+ llmonitor: ^0.5.9
+ lodash: ^4.17.21
+ lunary: ^0.7.10
+ mammoth: ^1.6.0
+ mongodb: '>=5.2.0'
+ mysql2: ^3.9.8
+ neo4j-driver: '*'
+ node-llama-cpp: '*'
+ notion-to-md: ^3.1.0
+ officeparser: ^4.0.4
+ pdf-parse: 1.1.1
+ pg: ^8.11.0
+ pg-copy-streams: ^6.0.5
+ pickleparser: ^0.2.1
+ playwright: ^1.32.1
+ portkey-ai: ^0.1.11
+ puppeteer: '*'
+ pyodide: '>=0.24.1 <0.27.0'
+ redis: '*'
+ replicate: ^0.29.4
+ sonix-speech-recognition: ^2.1.1
+ srt-parser-2: ^1.2.3
+ typeorm: ^0.3.20
+ typesense: ^1.5.3
+ usearch: ^1.1.1
+ vectordb: ^0.1.4
+ voy-search: 0.6.2
+ weaviate-ts-client: '*'
+ web-auth-library: ^1.0.3
+ ws: ^8.14.2
+ youtube-transcript: ^1.0.6
+ youtubei.js: ^9.1.0
+ peerDependenciesMeta:
+ '@arcjet/redact':
+ optional: true
+ '@aws-crypto/sha256-js':
+ optional: true
+ '@aws-sdk/client-bedrock-agent-runtime':
+ optional: true
+ '@aws-sdk/client-bedrock-runtime':
+ optional: true
+ '@aws-sdk/client-dynamodb':
+ optional: true
+ '@aws-sdk/client-kendra':
+ optional: true
+ '@aws-sdk/client-lambda':
+ optional: true
+ '@aws-sdk/client-s3':
+ optional: true
+ '@aws-sdk/client-sagemaker-runtime':
+ optional: true
+ '@aws-sdk/client-sfn':
+ optional: true
+ '@aws-sdk/credential-provider-node':
+ optional: true
+ '@azure/search-documents':
+ optional: true
+ '@azure/storage-blob':
+ optional: true
+ '@browserbasehq/sdk':
+ optional: true
+ '@clickhouse/client':
+ optional: true
+ '@cloudflare/ai':
+ optional: true
+ '@datastax/astra-db-ts':
+ optional: true
+ '@elastic/elasticsearch':
+ optional: true
+ '@getmetal/metal-sdk':
+ optional: true
+ '@getzep/zep-cloud':
+ optional: true
+ '@getzep/zep-js':
+ optional: true
+ '@gomomento/sdk':
+ optional: true
+ '@gomomento/sdk-core':
+ optional: true
+ '@google-ai/generativelanguage':
+ optional: true
+ '@google-cloud/storage':
+ optional: true
+ '@gradientai/nodejs-sdk':
+ optional: true
+ '@huggingface/inference':
+ optional: true
+ '@layerup/layerup-security':
+ optional: true
+ '@mendable/firecrawl-js':
+ optional: true
+ '@mlc-ai/web-llm':
+ optional: true
+ '@mozilla/readability':
+ optional: true
+ '@neondatabase/serverless':
+ optional: true
+ '@notionhq/client':
+ optional: true
+ '@opensearch-project/opensearch':
+ optional: true
+ '@pinecone-database/pinecone':
+ optional: true
+ '@planetscale/database':
+ optional: true
+ '@premai/prem-sdk':
+ optional: true
+ '@qdrant/js-client-rest':
+ optional: true
+ '@raycast/api':
+ optional: true
+ '@rockset/client':
+ optional: true
+ '@smithy/eventstream-codec':
+ optional: true
+ '@smithy/protocol-http':
+ optional: true
+ '@smithy/signature-v4':
+ optional: true
+ '@smithy/util-utf8':
+ optional: true
+ '@spider-cloud/spider-client':
+ optional: true
+ '@supabase/supabase-js':
+ optional: true
+ '@tensorflow-models/universal-sentence-encoder':
+ optional: true
+ '@tensorflow/tfjs-converter':
+ optional: true
+ '@tensorflow/tfjs-core':
+ optional: true
+ '@upstash/ratelimit':
+ optional: true
+ '@upstash/redis':
+ optional: true
+ '@upstash/vector':
+ optional: true
+ '@vercel/kv':
+ optional: true
+ '@vercel/postgres':
+ optional: true
+ '@writerai/writer-sdk':
+ optional: true
+ '@xata.io/client':
+ optional: true
+ '@xenova/transformers':
+ optional: true
+ '@zilliz/milvus2-sdk-node':
+ optional: true
+ apify-client:
+ optional: true
+ assemblyai:
+ optional: true
+ better-sqlite3:
+ optional: true
+ cassandra-driver:
+ optional: true
+ cborg:
+ optional: true
+ cheerio:
+ optional: true
+ chromadb:
+ optional: true
+ closevector-common:
+ optional: true
+ closevector-node:
+ optional: true
+ closevector-web:
+ optional: true
+ cohere-ai:
+ optional: true
+ convex:
+ optional: true
+ couchbase:
+ optional: true
+ crypto-js:
+ optional: true
+ d3-dsv:
+ optional: true
+ discord.js:
+ optional: true
+ dria:
+ optional: true
+ duck-duck-scrape:
+ optional: true
+ epub2:
+ optional: true
+ faiss-node:
+ optional: true
+ firebase-admin:
+ optional: true
+ google-auth-library:
+ optional: true
+ googleapis:
+ optional: true
+ hnswlib-node:
+ optional: true
+ html-to-text:
+ optional: true
+ ignore:
+ optional: true
+ interface-datastore:
+ optional: true
+ ioredis:
+ optional: true
+ it-all:
+ optional: true
+ jsdom:
+ optional: true
+ jsonwebtoken:
+ optional: true
+ llmonitor:
+ optional: true
+ lodash:
+ optional: true
+ lunary:
+ optional: true
+ mammoth:
+ optional: true
+ mongodb:
+ optional: true
+ mysql2:
+ optional: true
+ neo4j-driver:
+ optional: true
+ node-llama-cpp:
+ optional: true
+ notion-to-md:
+ optional: true
+ officeparser:
+ optional: true
+ pdf-parse:
+ optional: true
+ pg:
+ optional: true
+ pg-copy-streams:
+ optional: true
+ pickleparser:
+ optional: true
+ playwright:
+ optional: true
+ portkey-ai:
+ optional: true
+ puppeteer:
+ optional: true
+ pyodide:
+ optional: true
+ redis:
+ optional: true
+ replicate:
+ optional: true
+ sonix-speech-recognition:
+ optional: true
+ srt-parser-2:
+ optional: true
+ typeorm:
+ optional: true
+ typesense:
+ optional: true
+ usearch:
+ optional: true
+ vectordb:
+ optional: true
+ voy-search:
+ optional: true
+ weaviate-ts-client:
+ optional: true
+ web-auth-library:
+ optional: true
+ ws:
+ optional: true
+ youtube-transcript:
+ optional: true
+ youtubei.js:
+ optional: true
+
+ '@langchain/core@0.1.61':
+ resolution: {integrity: sha512-C8OkAly+ugvXsL8TACCmFv9WTTcT4gvQaG6NbrXCOzibBCywfxxcTqEMOyg3zIKpxHEmR0DHqh0OiJRHocnsCg==}
+ engines: {node: '>=18'}
+
+ '@langchain/core@0.2.36':
+ resolution: {integrity: sha512-qHLvScqERDeH7y2cLuJaSAlMwg3f/3Oc9nayRSXRU2UuaK/SOhI42cxiPLj1FnuHJSmN0rBQFkrLx02gI4mcVg==}
+ engines: {node: '>=18'}
+
+ '@langchain/openai@0.0.28':
+ resolution: {integrity: sha512-2s1RA3/eAnz4ahdzsMPBna9hfAqpFNlWdHiPxVGZ5yrhXsbLWWoPcF+22LCk9t0HJKtazi2GCIWc0HVXH9Abig==}
+ engines: {node: '>=18'}
+
+ '@langchain/openai@0.2.11':
+ resolution: {integrity: sha512-Pu8+WfJojCgSf0bAsXb4AjqvcDyAWyoEB1AoCRNACgEnBWZuitz3hLwCo9I+6hAbeg3QJ37g82yKcmvKAg1feg==}
+ engines: {node: '>=18'}
+
+ '@langchain/openai@0.3.11':
+ resolution: {integrity: sha512-mEFbpJ8w8NPArsquUlCwxvZTKNkXxqwzvTEYzv6Jb7gUoBDOZtwLg6AdcngTJ+w5VFh3wxgPy0g3zb9Aw0Qbpw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@langchain/core': '>=0.2.26 <0.4.0'
+
+ '@langchain/textsplitters@0.0.0':
+ resolution: {integrity: sha512-3hPesWomnmVeYMppEGYbyv0v/sRUugUdlFBNn9m1ueJYHAIKbvCErkWxNUH3guyKKYgJVrkvZoQxcd9faucSaw==}
+ engines: {node: '>=18'}
+
+ '@mapbox/node-pre-gyp@1.0.11':
+ resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==}
+ hasBin: true
+
+ '@nodelib/fs.scandir@2.1.5':
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.stat@2.0.5':
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.walk@1.2.8':
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+
+ '@opentelemetry/api-logs@0.52.1':
+ resolution: {integrity: sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A==}
+ engines: {node: '>=14'}
+
+ '@opentelemetry/api@1.9.0':
+ resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
+ engines: {node: '>=8.0.0'}
+
+ '@opentelemetry/auto-instrumentations-node@0.49.1':
+ resolution: {integrity: sha512-oF8g0cOEL4u1xkoAgSFAhOwMVVwDyZod6g1hVL1TtmpHTGMeEP2FfM6pPHE1soAFyddxd4B3NahZX3xczEbLdA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.4.1
+
+ '@opentelemetry/context-async-hooks@1.25.1':
+ resolution: {integrity: sha512-UW/ge9zjvAEmRWVapOP0qyCvPulWU6cQxGxDbWEFfGOj1VBBZAuOqTo3X6yWmDTD3Xe15ysCZChHncr2xFMIfQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
+
+ '@opentelemetry/core@1.25.1':
+ resolution: {integrity: sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
+
+ '@opentelemetry/exporter-trace-otlp-grpc@0.52.1':
+ resolution: {integrity: sha512-pVkSH20crBwMTqB3nIN4jpQKUEoB0Z94drIHpYyEqs7UBr+I0cpYyOR3bqjA/UasQUMROb3GX8ZX4/9cVRqGBQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.0.0
+
+ '@opentelemetry/exporter-trace-otlp-http@0.52.1':
+ resolution: {integrity: sha512-05HcNizx0BxcFKKnS5rwOV+2GevLTVIRA0tRgWYyw4yCgR53Ic/xk83toYKts7kbzcI+dswInUg/4s8oyA+tqg==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.0.0
+
+ '@opentelemetry/exporter-trace-otlp-proto@0.52.1':
+ resolution: {integrity: sha512-pt6uX0noTQReHXNeEslQv7x311/F1gJzMnp1HD2qgypLRPbXDeMzzeTngRTUaUbP6hqWNtPxuLr4DEoZG+TcEQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.0.0
+
+ '@opentelemetry/exporter-zipkin@1.25.1':
+ resolution: {integrity: sha512-RmOwSvkimg7ETwJbUOPTMhJm9A9bG1U8s7Zo3ajDh4zM7eYcycQ0dM7FbLD6NXWbI2yj7UY4q8BKinKYBQksyw==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.0.0
+
+ '@opentelemetry/instrumentation-amqplib@0.41.0':
+ resolution: {integrity: sha512-00Oi6N20BxJVcqETjgNzCmVKN+I5bJH/61IlHiIWd00snj1FdgiIKlpE4hYVacTB2sjIBB3nTbHskttdZEE2eg==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-aws-lambda@0.43.0':
+ resolution: {integrity: sha512-pSxcWlsE/pCWQRIw92sV2C+LmKXelYkjkA7C5s39iPUi4pZ2lA1nIiw+1R/y2pDEhUHcaKkNyljQr3cx9ZpVlQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-aws-sdk@0.43.1':
+ resolution: {integrity: sha512-qLT2cCniJ5W+6PFzKbksnoIQuq9pS83nmgaExfUwXVvlwi0ILc50dea0tWBHZMkdIDa/zZdcuFrJ7+fUcSnRow==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-bunyan@0.40.0':
+ resolution: {integrity: sha512-aZ4cXaGWwj79ZXSYrgFVsrDlE4mmf2wfvP9bViwRc0j75A6eN6GaHYHqufFGMTCqASQn5pIjjP+Bx+PWTGiofw==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-cassandra-driver@0.40.0':
+ resolution: {integrity: sha512-JxbM39JU7HxE9MTKKwi6y5Z3mokjZB2BjwfqYi4B3Y29YO3I42Z7eopG6qq06yWZc+nQli386UDQe0d9xKmw0A==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-connect@0.38.0':
+ resolution: {integrity: sha512-2/nRnx3pjYEmdPIaBwtgtSviTKHWnDZN3R+TkRUnhIVrvBKVcq+I5B2rtd6mr6Fe9cHlZ9Ojcuh7pkNh/xdWWg==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-cucumber@0.8.0':
+ resolution: {integrity: sha512-ieTm4RBIlZt2brPwtX5aEZYtYnkyqhAVXJI9RIohiBVMe5DxiwCwt+2Exep/nDVqGPX8zRBZUl4AEw423OxJig==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.0.0
+
+ '@opentelemetry/instrumentation-dataloader@0.11.0':
+ resolution: {integrity: sha512-27urJmwkH4KDaMJtEv1uy2S7Apk4XbN4AgWMdfMJbi7DnOduJmeuA+DpJCwXB72tEWXo89z5T3hUVJIDiSNmNw==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-dns@0.38.0':
+ resolution: {integrity: sha512-Um07I0TQXDWa+ZbEAKDFUxFH40dLtejtExDOMLNJ1CL8VmOmA71qx93Qi/QG4tGkiI1XWqr7gF/oiMCJ4m8buQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-express@0.41.1':
+ resolution: {integrity: sha512-uRx0V3LPGzjn2bxAnV8eUsDT82vT7NTwI0ezEuPMBOTOsnPpGhWdhcdNdhH80sM4TrWrOfXm9HGEdfWE3TRIww==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-fastify@0.38.0':
+ resolution: {integrity: sha512-HBVLpTSYpkQZ87/Df3N0gAw7VzYZV3n28THIBrJWfuqw3Or7UqdhnjeuMIPQ04BKk3aZc0cWn2naSQObbh5vXw==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-fs@0.14.0':
+ resolution: {integrity: sha512-pVc8P5AgliC1DphyyBUgsxXlm2XaPH4BpYvt7rAZDMIqUpRk8gs19SioABtKqqxvFzg5jPtgJfJsdxq0Y+maLw==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-generic-pool@0.38.0':
+ resolution: {integrity: sha512-0/ULi6pIco1fEnDPmmAul8ZoudFL7St0hjgBbWZlZPBCSyslDll1J7DFeEbjiRSSyUd+0tu73ae0DOKVKNd7VA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-graphql@0.42.0':
+ resolution: {integrity: sha512-N8SOwoKL9KQSX7z3gOaw5UaTeVQcfDO1c21csVHnmnmGUoqsXbArK2B8VuwPWcv6/BC/i3io+xTo7QGRZ/z28Q==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-grpc@0.52.1':
+ resolution: {integrity: sha512-EdSDiDSAO+XRXk/ZN128qQpBo1I51+Uay/LUPcPQhSRGf7fBPIEUBeOLQiItguGsug5MGOYjql2w/1wCQF3fdQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-hapi@0.40.0':
+ resolution: {integrity: sha512-8U/w7Ifumtd2bSN1OLaSwAAFhb9FyqWUki3lMMB0ds+1+HdSxYBe9aspEJEgvxAqOkrQnVniAPTEGf1pGM7SOw==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-http@0.52.1':
+ resolution: {integrity: sha512-dG/aevWhaP+7OLv4BQQSEKMJv8GyeOp3Wxl31NHqE8xo9/fYMfEljiZphUHIfyg4gnZ9swMyWjfOQs5GUQe54Q==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-ioredis@0.42.0':
+ resolution: {integrity: sha512-P11H168EKvBB9TUSasNDOGJCSkpT44XgoM6d3gRIWAa9ghLpYhl0uRkS8//MqPzcJVHr3h3RmfXIpiYLjyIZTw==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-kafkajs@0.2.0':
+ resolution: {integrity: sha512-uKKmhEFd0zR280tJovuiBG7cfnNZT4kvVTvqtHPxQP7nOmRbJstCYHFH13YzjVcKjkmoArmxiSulmZmF7SLIlg==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-knex@0.39.0':
+ resolution: {integrity: sha512-lRwTqIKQecPWDkH1KEcAUcFhCaNssbKSpxf4sxRTAROCwrCEnYkjOuqJHV+q1/CApjMTaKu0Er4LBv/6bDpoxA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-koa@0.42.0':
+ resolution: {integrity: sha512-H1BEmnMhho8o8HuNRq5zEI4+SIHDIglNB7BPKohZyWG4fWNuR7yM4GTlR01Syq21vODAS7z5omblScJD/eZdKw==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-lru-memoizer@0.39.0':
+ resolution: {integrity: sha512-eU1Wx1RRTR/2wYXFzH9gcpB8EPmhYlNDIUHzUXjyUE0CAXEJhBLkYNlzdaVCoQDw2neDqS+Woshiia6+emWK9A==}
+ engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
@@ -2773,6 +3269,9 @@ packages:
'@types/triple-beam@1.3.5':
resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
+ '@types/uuid@10.0.0':
+ resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
+
'@types/uuid@9.0.8':
resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
@@ -2922,11 +3421,8 @@ packages:
binary-search@1.3.6:
resolution: {integrity: sha512-nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA==}
- bl@4.1.0:
- resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
-
- body-parser@1.20.2:
- resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==}
+ body-parser@1.20.3:
+ resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
brace-expansion@1.1.11:
@@ -2942,9 +3438,6 @@ packages:
buffer-equal-constant-time@1.0.1:
resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
- buffer@5.7.1:
- resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
-
bundle-require@4.0.2:
resolution: {integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -2986,9 +3479,6 @@ packages:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
- chownr@1.1.4:
- resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
-
chownr@2.0.0:
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
engines: {node: '>=10'}
@@ -3157,14 +3647,6 @@ packages:
resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==}
engines: {node: '>=8'}
- decompress-response@6.0.0:
- resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
- engines: {node: '>=10'}
-
- deep-extend@0.6.0:
- resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
- engines: {node: '>=4.0.0'}
-
define-data-property@1.1.4:
resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
engines: {node: '>= 0.4'}
@@ -3241,6 +3723,10 @@ packages:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
engines: {node: '>= 0.8'}
+ encodeurl@2.0.0:
+ resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
+ engines: {node: '>= 0.8'}
+
encoding@0.1.13:
resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
@@ -3317,15 +3803,15 @@ packages:
resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
engines: {node: '>=10'}
- expand-template@2.0.3:
- resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
- engines: {node: '>=6'}
-
expr-eval@2.0.2:
resolution: {integrity: sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg==}
- express@4.19.2:
- resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==}
+ express@4.20.0:
+ resolution: {integrity: sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw==}
+ engines: {node: '>= 0.10.0'}
+
+ express@4.21.0:
+ resolution: {integrity: sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==}
engines: {node: '>= 0.10.0'}
extend@3.0.2:
@@ -3335,10 +3821,6 @@ packages:
resolution: {integrity: sha512-6ypT4XfgqJk/F3Yuv4SX26I3doUjt0GTG4a+JgWxXQpxXzTBq8fPUeGHfcYMMDPHJHm3yPOSjaeBwBGAHWXCdA==}
engines: {node: '>=18.0.0'}
- farmhash@3.3.1:
- resolution: {integrity: sha512-XUizHanzlr/v7suBr/o85HSakOoWh6HKXZjFYl5C2+Gj0f0rkw+XTUZzrd9odDsgI9G5tRUcF4wSbKaX04T0DQ==}
- engines: {node: '>=10'}
-
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
@@ -3378,28 +3860,17 @@ packages:
resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
engines: {node: '>= 0.8'}
+ finalhandler@1.3.1:
+ resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==}
+ engines: {node: '>= 0.8'}
+
find-package@1.0.0:
resolution: {integrity: sha512-yVn71XCCaNgxz58ERTl8nA/8YYtIQDY9mHSrgFBfiFtdNNfY0h183Vh8BRkKxD8x9TUw3ec290uJKhDVxqGZBw==}
- firebase-admin@12.1.0:
- resolution: {integrity: sha512-bU7uPKMmIXAihWxntpY/Ma9zucn5y3ec+HQPqFQ/zcEfP9Avk9E/6D8u+yT/VwKHNZyg7yDVWOoJi73TIdR4Ww==}
- engines: {node: '>=14'}
-
- firebase-admin@12.2.0:
- resolution: {integrity: sha512-R9xxENvPA/19XJ3mv0Kxfbz9kPXd9/HrM4083LZWOO0qAQGheRzcCQamYRe+JSrV2cdKXP3ZsfFGTYMrFM0pJg==}
- engines: {node: '>=14'}
-
firebase-admin@12.3.1:
resolution: {integrity: sha512-vEr3s3esl8nPIA9r/feDT4nzIXCfov1CyyCSpMQWp6x63Q104qke0MEGZlrHUZVROtl8FLus6niP/M9I1s4VBA==}
engines: {node: '>=14'}
- firebase-functions@4.8.1:
- resolution: {integrity: sha512-SHA7ZUlG+MOOsKyp+D4vhSyF4FsJMD+qyVUkTcPry6wbbxDitv9k4xgUPXffhbiokxFi1AbeckA8SGD41AZiCg==}
- engines: {node: '>=14.10.0'}
- hasBin: true
- peerDependencies:
- firebase-admin: ^10.0.0 || ^11.0.0 || ^12.0.0
-
firebase-functions@5.0.1:
resolution: {integrity: sha512-1m+crtgAR8Tl36gjpM02KCY5zduAejFmDSXvih/DB93apg39f0U/WwRgT7sitGIRqyCcIpktNUbXJv7Y9JOF4A==}
engines: {node: '>=14.10.0'}
@@ -3451,9 +3922,6 @@ packages:
front-matter@4.0.2:
resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==}
- fs-constants@1.0.0:
- resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
-
fs-minipass@2.1.0:
resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
engines: {node: '>= 8'}
@@ -3484,10 +3952,6 @@ packages:
engines: {node: '>=10'}
deprecated: This package is no longer supported.
- gaxios@4.3.3:
- resolution: {integrity: sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==}
- engines: {node: '>=10'}
-
gaxios@5.1.3:
resolution: {integrity: sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==}
engines: {node: '>=12'}
@@ -3496,10 +3960,6 @@ packages:
resolution: {integrity: sha512-p+ggrQw3fBwH2F5N/PAI4k/G/y1art5OxKpb2J2chwNNHM4hHuAOtivjPuirMF4KNKwTTUal/lPfL2+7h2mEcg==}
engines: {node: '>=14'}
- gcp-metadata@4.3.1:
- resolution: {integrity: sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==}
- engines: {node: '>=10'}
-
gcp-metadata@5.3.0:
resolution: {integrity: sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w==}
engines: {node: '>=12'}
@@ -3532,9 +3992,6 @@ packages:
get-tsconfig@4.7.3:
resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==}
- github-from-package@0.0.0:
- resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
-
glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
@@ -3544,6 +4001,11 @@ packages:
engines: {node: '>=16 || 14 >=14.17'}
hasBin: true
+ glob@11.0.0:
+ resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==}
+ engines: {node: 20 || >=22}
+ hasBin: true
+
glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
deprecated: Glob versions prior to v9 are no longer supported
@@ -3556,10 +4018,6 @@ packages:
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
engines: {node: '>=10'}
- google-auth-library@7.14.1:
- resolution: {integrity: sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA==}
- engines: {node: '>=10'}
-
google-auth-library@8.9.0:
resolution: {integrity: sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg==}
engines: {node: '>=12'}
@@ -3568,6 +4026,10 @@ packages:
resolution: {integrity: sha512-epX3ww/mNnhl6tL45EQ/oixsY8JLEgUFoT4A5E/5iAR4esld9Kqv6IJGk7EmGuOgDvaarwF95hU2+v7Irql9lw==}
engines: {node: '>=14'}
+ google-auth-library@9.14.1:
+ resolution: {integrity: sha512-Rj+PMjoNFGFTmtItH7gHfbHpGVSb3vmnGK3nwNBqxQF9NoBpttSZI/rc0WiM63ma2uGDQtYEkMHkK9U6937NiA==}
+ engines: {node: '>=14'}
+
google-auth-library@9.7.0:
resolution: {integrity: sha512-I/AvzBiUXDzLOy4iIZ2W+Zq33W4lcukQv1nl7C8WUA6SQwyQwUwu3waNmWNAvzds//FG8SZ+DnKnW/2k6mQS8A==}
engines: {node: '>=14'}
@@ -3580,22 +4042,12 @@ packages:
resolution: {integrity: sha512-3bnD8RASQyaxOYTdWLgwpQco/aytTxFavoI/UN5QN5txDLp8QRrBHNtCUJ5+Ago+551GD92jG8jJduwvmaneUw==}
engines: {node: '>=14'}
- google-p12-pem@3.1.4:
- resolution: {integrity: sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg==}
- engines: {node: '>=10'}
- deprecated: Package is no longer maintained
- hasBin: true
-
google-p12-pem@4.0.1:
resolution: {integrity: sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==}
engines: {node: '>=12.0.0'}
deprecated: Package is no longer maintained
hasBin: true
- google-proto-files@3.0.3:
- resolution: {integrity: sha512-7JaU/smPA/FpNsCaXyVjitwiQyn5zYC/ETA+xag3ziovBojIWvzevyrbVqhxgnQdgMJ0p1RVSvpzQL6hkg6yGw==}
- engines: {node: '>=12.0.0'}
-
googleapis-common@7.2.0:
resolution: {integrity: sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA==}
engines: {node: '>=14.0.0'}
@@ -3614,10 +4066,6 @@ packages:
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
- gtoken@5.3.2:
- resolution: {integrity: sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==}
- engines: {node: '>=10'}
-
gtoken@6.1.2:
resolution: {integrity: sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==}
engines: {node: '>=12.0.0'}
@@ -3701,9 +4149,6 @@ packages:
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
engines: {node: '>=0.10.0'}
- ieee754@1.2.1:
- resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
-
ignore@5.3.1:
resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
engines: {node: '>= 4'}
@@ -3721,9 +4166,6 @@ packages:
inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
- ini@1.3.8:
- resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
-
internal-slot@1.0.7:
resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
engines: {node: '>= 0.4'}
@@ -3845,6 +4287,10 @@ packages:
resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
engines: {node: '>=14'}
+ jackspeak@4.0.2:
+ resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==}
+ engines: {node: 20 || >=22}
+
jake@10.9.1:
resolution: {integrity: sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==}
engines: {node: '>=10'}
@@ -3860,6 +4306,9 @@ packages:
js-tiktoken@1.0.11:
resolution: {integrity: sha512-PajXFLq2vx7/8jllQZ43vzNpAai/0MOVdJjW/UrNyJorNQRTjHrqdGJG/mjHVy7h9M6dW6CaG43eNLMYFkTh6w==}
+ js-tiktoken@1.0.15:
+ resolution: {integrity: sha512-65ruOWWXDEZHHbAo7EjOcNxOGasQKbL4Fq3jEr2xsCqSsoOo6VVSqzWQb6PRIqypFSDcma4jO90YP0w5X8qVXQ==}
+
js-yaml@3.14.1:
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
hasBin: true
@@ -3952,22 +4401,191 @@ packages:
mammoth: ^1.6.0
mongodb: '>=5.2.0'
node-llama-cpp: '*'
- notion-to-md: ^3.1.0
- officeparser: ^4.0.4
- pdf-parse: 1.1.1
+ notion-to-md: ^3.1.0
+ officeparser: ^4.0.4
+ pdf-parse: 1.1.1
+ peggy: ^3.0.2
+ playwright: ^1.32.1
+ puppeteer: ^19.7.2
+ pyodide: ^0.24.1
+ redis: ^4.6.4
+ sonix-speech-recognition: ^2.1.1
+ srt-parser-2: ^1.2.3
+ typeorm: ^0.3.12
+ weaviate-ts-client: '*'
+ web-auth-library: ^1.0.3
+ ws: ^8.14.2
+ youtube-transcript: ^1.0.6
+ youtubei.js: ^9.1.0
+ peerDependenciesMeta:
+ '@aws-sdk/client-s3':
+ optional: true
+ '@aws-sdk/client-sagemaker-runtime':
+ optional: true
+ '@aws-sdk/client-sfn':
+ optional: true
+ '@aws-sdk/credential-provider-node':
+ optional: true
+ '@azure/storage-blob':
+ optional: true
+ '@gomomento/sdk':
+ optional: true
+ '@gomomento/sdk-core':
+ optional: true
+ '@gomomento/sdk-web':
+ optional: true
+ '@google-ai/generativelanguage':
+ optional: true
+ '@google-cloud/storage':
+ optional: true
+ '@mendable/firecrawl-js':
+ optional: true
+ '@notionhq/client':
+ optional: true
+ '@pinecone-database/pinecone':
+ optional: true
+ '@supabase/supabase-js':
+ optional: true
+ '@vercel/kv':
+ optional: true
+ '@xata.io/client':
+ optional: true
+ apify-client:
+ optional: true
+ assemblyai:
+ optional: true
+ axios:
+ optional: true
+ cheerio:
+ optional: true
+ chromadb:
+ optional: true
+ convex:
+ optional: true
+ couchbase:
+ optional: true
+ d3-dsv:
+ optional: true
+ epub2:
+ optional: true
+ faiss-node:
+ optional: true
+ fast-xml-parser:
+ optional: true
+ google-auth-library:
+ optional: true
+ handlebars:
+ optional: true
+ html-to-text:
+ optional: true
+ ignore:
+ optional: true
+ ioredis:
+ optional: true
+ jsdom:
+ optional: true
+ mammoth:
+ optional: true
+ mongodb:
+ optional: true
+ node-llama-cpp:
+ optional: true
+ notion-to-md:
+ optional: true
+ officeparser:
+ optional: true
+ pdf-parse:
+ optional: true
+ peggy:
+ optional: true
+ playwright:
+ optional: true
+ puppeteer:
+ optional: true
+ pyodide:
+ optional: true
+ redis:
+ optional: true
+ sonix-speech-recognition:
+ optional: true
+ srt-parser-2:
+ optional: true
+ typeorm:
+ optional: true
+ weaviate-ts-client:
+ optional: true
+ web-auth-library:
+ optional: true
+ ws:
+ optional: true
+ youtube-transcript:
+ optional: true
+ youtubei.js:
+ optional: true
+
+ langchain@0.2.19:
+ resolution: {integrity: sha512-2NhxNz5hE6eRrklMEidihzHq9J0Lzbyo1HxxZe4CuUIJf5UVSiPj9sqiJ2Ovx7BfgD/SJOursnx/yw/jCjVE1A==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@aws-sdk/client-s3': '*'
+ '@aws-sdk/client-sagemaker-runtime': '*'
+ '@aws-sdk/client-sfn': '*'
+ '@aws-sdk/credential-provider-node': '*'
+ '@azure/storage-blob': '*'
+ '@browserbasehq/sdk': '*'
+ '@gomomento/sdk': '*'
+ '@gomomento/sdk-core': '*'
+ '@gomomento/sdk-web': ^1.51.1
+ '@langchain/anthropic': '*'
+ '@langchain/aws': '*'
+ '@langchain/cohere': '*'
+ '@langchain/community': '*'
+ '@langchain/google-genai': '*'
+ '@langchain/google-vertexai': '*'
+ '@langchain/groq': '*'
+ '@langchain/mistralai': '*'
+ '@langchain/ollama': '*'
+ '@mendable/firecrawl-js': '*'
+ '@notionhq/client': '*'
+ '@pinecone-database/pinecone': '*'
+ '@supabase/supabase-js': '*'
+ '@vercel/kv': '*'
+ '@xata.io/client': '*'
+ apify-client: '*'
+ assemblyai: '*'
+ axios: '*'
+ cheerio: '*'
+ chromadb: '*'
+ convex: '*'
+ couchbase: '*'
+ d3-dsv: '*'
+ epub2: '*'
+ faiss-node: '*'
+ fast-xml-parser: '*'
+ handlebars: ^4.7.8
+ html-to-text: '*'
+ ignore: '*'
+ ioredis: '*'
+ jsdom: '*'
+ mammoth: '*'
+ mongodb: '*'
+ node-llama-cpp: '*'
+ notion-to-md: '*'
+ officeparser: '*'
+ pdf-parse: '*'
peggy: ^3.0.2
- playwright: ^1.32.1
- puppeteer: ^19.7.2
- pyodide: ^0.24.1
- redis: ^4.6.4
- sonix-speech-recognition: ^2.1.1
- srt-parser-2: ^1.2.3
- typeorm: ^0.3.12
+ playwright: '*'
+ puppeteer: '*'
+ pyodide: '>=0.24.1 <0.27.0'
+ redis: '*'
+ sonix-speech-recognition: '*'
+ srt-parser-2: '*'
+ typeorm: '*'
weaviate-ts-client: '*'
- web-auth-library: ^1.0.3
- ws: ^8.14.2
- youtube-transcript: ^1.0.6
- youtubei.js: ^9.1.0
+ web-auth-library: '*'
+ ws: '*'
+ youtube-transcript: '*'
+ youtubei.js: '*'
peerDependenciesMeta:
'@aws-sdk/client-s3':
optional: true
@@ -3979,15 +4597,31 @@ packages:
optional: true
'@azure/storage-blob':
optional: true
+ '@browserbasehq/sdk':
+ optional: true
'@gomomento/sdk':
optional: true
'@gomomento/sdk-core':
optional: true
'@gomomento/sdk-web':
optional: true
- '@google-ai/generativelanguage':
+ '@langchain/anthropic':
optional: true
- '@google-cloud/storage':
+ '@langchain/aws':
+ optional: true
+ '@langchain/cohere':
+ optional: true
+ '@langchain/community':
+ optional: true
+ '@langchain/google-genai':
+ optional: true
+ '@langchain/google-vertexai':
+ optional: true
+ '@langchain/groq':
+ optional: true
+ '@langchain/mistralai':
+ optional: true
+ '@langchain/ollama':
optional: true
'@mendable/firecrawl-js':
optional: true
@@ -4023,8 +4657,6 @@ packages:
optional: true
fast-xml-parser:
optional: true
- google-auth-library:
- optional: true
handlebars:
optional: true
html-to-text:
@@ -4074,12 +4706,74 @@ packages:
youtubei.js:
optional: true
+ langchain@0.3.5:
+ resolution: {integrity: sha512-Gq0xC45Sq6nszS8kQG9suCrmBsuXH0INMmiF7D2TwPb6mtG35Jiq4grCk9ykpwPsarTHdty3SzUbII/FqiYSSw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@langchain/anthropic': '*'
+ '@langchain/aws': '*'
+ '@langchain/cohere': '*'
+ '@langchain/core': '>=0.2.21 <0.4.0'
+ '@langchain/google-genai': '*'
+ '@langchain/google-vertexai': '*'
+ '@langchain/groq': '*'
+ '@langchain/mistralai': '*'
+ '@langchain/ollama': '*'
+ axios: '*'
+ cheerio: '*'
+ handlebars: ^4.7.8
+ peggy: ^3.0.2
+ typeorm: '*'
+ peerDependenciesMeta:
+ '@langchain/anthropic':
+ optional: true
+ '@langchain/aws':
+ optional: true
+ '@langchain/cohere':
+ optional: true
+ '@langchain/google-genai':
+ optional: true
+ '@langchain/google-vertexai':
+ optional: true
+ '@langchain/groq':
+ optional: true
+ '@langchain/mistralai':
+ optional: true
+ '@langchain/ollama':
+ optional: true
+ axios:
+ optional: true
+ cheerio:
+ optional: true
+ handlebars:
+ optional: true
+ peggy:
+ optional: true
+ typeorm:
+ optional: true
+
langchainhub@0.0.8:
resolution: {integrity: sha512-Woyb8YDHgqqTOZvWIbm2CaFDGfZ4NTSyXV687AG4vXEfoNo7cGQp7nhl7wL3ehenKWmNEmcxCLgOZzW8jE6lOQ==}
langsmith@0.1.14:
resolution: {integrity: sha512-iEzQLLB7/0nRpAwNBAR7B7N64fyByg5UsNjSvLaCCkQ9AS68PSafjB8xQkyI8QXXrGjU1dEqDRoa8m4SUuRdUw==}
+ langsmith@0.1.68:
+ resolution: {integrity: sha512-otmiysWtVAqzMx3CJ4PrtUBhWRG5Co8Z4o7hSZENPjlit9/j3/vm3TSvbaxpDYakZxtMjhkcJTqrdYFipISEiQ==}
+ peerDependencies:
+ openai: '*'
+ peerDependenciesMeta:
+ openai:
+ optional: true
+
+ langsmith@0.2.3:
+ resolution: {integrity: sha512-SPMYPVqR9kwXZVmJ2PXC61HeBnXIFHrjfjDxQ14H0+n5p4gqjLzgSHIQyxBlFeWQUQzArJxe65Ap+s+Xo1cZog==}
+ peerDependencies:
+ openai: '*'
+ peerDependenciesMeta:
+ openai:
+ optional: true
+
lilconfig@3.1.1:
resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==}
engines: {node: '>=14'}
@@ -4152,6 +4846,10 @@ packages:
resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
engines: {node: 14 || >=16.14}
+ lru-cache@11.0.1:
+ resolution: {integrity: sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==}
+ engines: {node: 20 || >=22}
+
lru-cache@4.0.2:
resolution: {integrity: sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw==}
@@ -4177,8 +4875,8 @@ packages:
resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==}
engines: {node: '>= 0.10.0'}
- merge-descriptors@1.0.1:
- resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
+ merge-descriptors@1.0.3:
+ resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==}
merge-stream@2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
@@ -4221,9 +4919,9 @@ packages:
resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==}
engines: {node: '>=8'}
- mimic-response@3.1.0:
- resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
- engines: {node: '>=10'}
+ minimatch@10.0.1:
+ resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==}
+ engines: {node: 20 || >=22}
minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
@@ -4251,13 +4949,14 @@ packages:
resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
engines: {node: '>=16 || 14 >=14.17'}
+ minipass@7.1.2:
+ resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
minizlib@2.1.2:
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
engines: {node: '>= 8'}
- mkdirp-classic@0.5.3:
- resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
-
mkdirp@1.0.4:
resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
engines: {node: '>=10'}
@@ -4300,9 +4999,6 @@ packages:
nan@2.19.0:
resolution: {integrity: sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==}
- napi-build-utils@1.0.2:
- resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
-
negotiator@0.6.3:
resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
engines: {node: '>= 0.6'}
@@ -4313,13 +5009,6 @@ packages:
nice-try@1.0.5:
resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
- node-abi@3.62.0:
- resolution: {integrity: sha512-CPMcGa+y33xuL1E0TcNIu4YyaZCxnnvkVaEXrsosR3FxN+fV8xvb7Mzpb7IgKler10qeMkE6+Dp8qJhpzdq35g==}
- engines: {node: '>=10'}
-
- node-addon-api@5.1.0:
- resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==}
-
node-domexception@1.0.0:
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
engines: {node: '>=10.5.0'}
@@ -4414,6 +5103,15 @@ packages:
resolution: {integrity: sha512-XoMaJsSLuedW5eoMEMmZbdNoXgML3ujcU5KfwRnC6rnbmZkHE2Q4J/SArwhqCxQRqJwHnQUj1LpiROmKPExZJA==}
hasBin: true
+ openai@4.68.4:
+ resolution: {integrity: sha512-LRinV8iU9VQplkr25oZlyrsYGPGasIwYN8KFMAAFTHHLHjHhejtJ5BALuLFrkGzY4wfbKhOhuT+7lcHZ+F3iEA==}
+ hasBin: true
+ peerDependencies:
+ zod: ^3.23.8
+ peerDependenciesMeta:
+ zod:
+ optional: true
+
openapi-types@12.1.3:
resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==}
@@ -4437,6 +5135,9 @@ packages:
resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
engines: {node: '>=8'}
+ package-json-from-dist@1.0.1:
+ resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
+
parents@1.0.1:
resolution: {integrity: sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==}
@@ -4474,8 +5175,12 @@ packages:
resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==}
engines: {node: '>=16 || 14 >=14.17'}
- path-to-regexp@0.1.7:
- resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
+ path-scurry@2.0.0:
+ resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==}
+ engines: {node: 20 || >=22}
+
+ path-to-regexp@0.1.10:
+ resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==}
path-type@3.0.0:
resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==}
@@ -4563,11 +5268,6 @@ packages:
resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==}
engines: {node: '>=0.10.0'}
- prebuild-install@7.1.2:
- resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==}
- engines: {node: '>=10'}
- hasBin: true
-
prettier-plugin-organize-imports@3.2.4:
resolution: {integrity: sha512-6m8WBhIp0dfwu0SkgfOxJqh+HpdyfqSSLfKKRZSFbDuEQXDDndb8fTpRWkUrX/uBenkex3MgnVk0J3b3Y5byog==}
peerDependencies:
@@ -4630,8 +5330,8 @@ packages:
resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
engines: {node: '>=0.6'}
- qs@6.12.0:
- resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==}
+ qs@6.13.0:
+ resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
engines: {node: '>=0.6'}
queue-microtask@1.2.3:
@@ -4645,10 +5345,6 @@ packages:
resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
engines: {node: '>= 0.8'}
- rc@1.2.8:
- resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
- hasBin: true
-
read-pkg@3.0.0:
resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==}
engines: {node: '>=4'}
@@ -4705,6 +5401,11 @@ packages:
deprecated: Rimraf versions prior to v4 are no longer supported
hasBin: true
+ rimraf@6.0.1:
+ resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==}
+ engines: {node: 20 || >=22}
+ hasBin: true
+
rollup@4.13.2:
resolution: {integrity: sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
@@ -4744,12 +5445,25 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ semver@7.6.3:
+ resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
+ engines: {node: '>=10'}
+ hasBin: true
+
send@0.18.0:
resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
engines: {node: '>= 0.8.0'}
- serve-static@1.15.0:
- resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
+ send@0.19.0:
+ resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==}
+ engines: {node: '>= 0.8.0'}
+
+ serve-static@1.16.0:
+ resolution: {integrity: sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA==}
+ engines: {node: '>= 0.8.0'}
+
+ serve-static@1.16.2:
+ resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==}
engines: {node: '>= 0.8.0'}
set-blocking@2.0.0:
@@ -4805,9 +5519,6 @@ packages:
simple-get@3.1.1:
resolution: {integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==}
- simple-get@4.0.1:
- resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==}
-
simple-swizzle@0.2.2:
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
@@ -4893,10 +5604,6 @@ packages:
resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
engines: {node: '>=6'}
- strip-json-comments@2.0.1:
- resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
- engines: {node: '>=0.10.0'}
-
strnum@1.0.5:
resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
@@ -4920,13 +5627,6 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
- tar-fs@2.1.1:
- resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
-
- tar-stream@2.2.0:
- resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
- engines: {node: '>=6'}
-
tar@6.2.1:
resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
engines: {node: '>=10'}
@@ -4967,6 +5667,9 @@ packages:
resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==}
engines: {node: '>= 14.0.0'}
+ truncate-utf8-bytes@1.0.2:
+ resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==}
+
ts-interface-checker@0.1.13:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
@@ -5001,9 +5704,6 @@ packages:
engines: {node: '>=18.0.0'}
hasBin: true
- tunnel-agent@0.6.0:
- resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
-
type-is@1.6.18:
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
engines: {node: '>= 0.6'}
@@ -5039,6 +5739,11 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
+ typescript@5.6.2:
+ resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
uglify-js@3.17.4:
resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==}
engines: {node: '>=0.8.0'}
@@ -5063,6 +5768,9 @@ packages:
url-template@2.0.8:
resolution: {integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==}
+ utf8-byte-length@1.0.5:
+ resolution: {integrity: sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==}
+
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
@@ -5098,10 +5806,6 @@ packages:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
- walkdir@0.4.1:
- resolution: {integrity: sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==}
- engines: {node: '>=6.0.0'}
-
web-streams-polyfill@3.3.3:
resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
engines: {node: '>= 8'}
@@ -5249,7 +5953,7 @@ snapshots:
'@anthropic-ai/vertex-sdk@0.4.0(encoding@0.1.13)':
dependencies:
'@anthropic-ai/sdk': 0.24.3(encoding@0.1.13)
- google-auth-library: 9.7.0(encoding@0.1.13)
+ google-auth-library: 9.14.1(encoding@0.1.13)
transitivePeerDependencies:
- encoding
- supports-color
@@ -5331,8 +6035,6 @@ snapshots:
'@esbuild/win32-x64@0.19.12':
optional: true
- '@fastify/busboy@2.1.1': {}
-
'@fastify/busboy@3.0.0': {}
'@firebase/app-check-interop-types@0.3.1': {}
@@ -5411,7 +6113,7 @@ snapshots:
duplexify: 4.1.3
ent: 2.2.0
extend: 3.0.2
- google-auth-library: 9.11.0(encoding@0.1.13)
+ google-auth-library: 9.14.1(encoding@0.1.13)
retry-request: 7.0.2(encoding@0.1.13)
teeny-request: 9.0.0(encoding@0.1.13)
transitivePeerDependencies:
@@ -5428,17 +6130,6 @@ snapshots:
- encoding
- supports-color
- '@google-cloud/firestore@7.8.0(encoding@0.1.13)':
- dependencies:
- fast-deep-equal: 3.1.3
- functional-red-black-tree: 1.0.1
- google-gax: 4.3.7(encoding@0.1.13)
- protobufjs: 7.3.2
- transitivePeerDependencies:
- - encoding
- - supports-color
- optional: true
-
'@google-cloud/firestore@7.9.0(encoding@0.1.13)':
dependencies:
fast-deep-equal: 3.1.3
@@ -5451,7 +6142,7 @@ snapshots:
'@google-cloud/logging-winston@6.0.0(encoding@0.1.13)(winston@3.13.0)':
dependencies:
- '@google-cloud/logging': 11.0.0(encoding@0.1.13)
+ '@google-cloud/logging': 11.2.0(encoding@0.1.13)
google-auth-library: 9.7.0(encoding@0.1.13)
lodash.mapvalues: 4.6.0
winston: 3.13.0
@@ -5460,19 +6151,20 @@ snapshots:
- encoding
- supports-color
- '@google-cloud/logging@11.0.0(encoding@0.1.13)':
+ '@google-cloud/logging@11.2.0(encoding@0.1.13)':
dependencies:
'@google-cloud/common': 5.0.1(encoding@0.1.13)
- '@google-cloud/paginator': 5.0.0
+ '@google-cloud/paginator': 5.0.2
'@google-cloud/projectify': 4.0.0
'@google-cloud/promisify': 4.0.0
+ '@opentelemetry/api': 1.9.0
arrify: 2.0.1
dot-prop: 6.0.1
eventid: 2.0.1
extend: 3.0.2
gcp-metadata: 6.1.0(encoding@0.1.13)
google-auth-library: 9.11.0(encoding@0.1.13)
- google-gax: 4.3.2(encoding@0.1.13)
+ google-gax: 4.3.7(encoding@0.1.13)
on-finished: 2.4.1
pumpify: 2.0.1
stream-events: 1.0.5
@@ -5483,47 +6175,36 @@ snapshots:
'@google-cloud/opentelemetry-cloud-monitoring-exporter@0.19.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)':
dependencies:
- '@google-cloud/opentelemetry-resource-util': 2.3.0(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)
+ '@google-cloud/opentelemetry-resource-util': 2.4.0(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)
'@google-cloud/precise-date': 4.0.0
'@opentelemetry/api': 1.9.0
'@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
'@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0)
'@opentelemetry/sdk-metrics': 1.25.1(@opentelemetry/api@1.9.0)
- google-auth-library: 9.7.0(encoding@0.1.13)
+ google-auth-library: 9.11.0(encoding@0.1.13)
googleapis: 137.1.0(encoding@0.1.13)
transitivePeerDependencies:
- encoding
- supports-color
- '@google-cloud/opentelemetry-cloud-trace-exporter@2.1.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.26.0)(encoding@0.1.13)':
+ '@google-cloud/opentelemetry-cloud-trace-exporter@2.4.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)':
dependencies:
- '@google-cloud/opentelemetry-resource-util': 2.1.0(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.26.0)(encoding@0.1.13)
- '@grpc/grpc-js': 1.10.4
- '@grpc/proto-loader': 0.7.12
+ '@google-cloud/opentelemetry-resource-util': 2.4.0(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)
+ '@grpc/grpc-js': 1.10.10
+ '@grpc/proto-loader': 0.7.13
'@opentelemetry/api': 1.9.0
'@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
'@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0)
'@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0)
- google-auth-library: 7.14.1(encoding@0.1.13)
- google-proto-files: 3.0.3
+ google-auth-library: 9.14.1(encoding@0.1.13)
transitivePeerDependencies:
- - '@opentelemetry/semantic-conventions'
- encoding
- supports-color
- '@google-cloud/opentelemetry-resource-util@2.1.0(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.26.0)(encoding@0.1.13)':
+ '@google-cloud/opentelemetry-resource-util@2.4.0(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)':
dependencies:
'@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.26.0
- gcp-metadata: 5.3.0(encoding@0.1.13)
- transitivePeerDependencies:
- - encoding
- - supports-color
-
- '@google-cloud/opentelemetry-resource-util@2.3.0(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)':
- dependencies:
- '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.22.0
gcp-metadata: 6.1.0(encoding@0.1.13)
transitivePeerDependencies:
- encoding
@@ -5533,6 +6214,7 @@ snapshots:
dependencies:
arrify: 2.0.1
extend: 3.0.2
+ optional: true
'@google-cloud/paginator@5.0.2':
dependencies:
@@ -5556,7 +6238,7 @@ snapshots:
ent: 2.2.0
fast-xml-parser: 4.3.6
gaxios: 6.3.0(encoding@0.1.13)
- google-auth-library: 9.11.0(encoding@0.1.13)
+ google-auth-library: 9.14.1(encoding@0.1.13)
mime: 3.0.0
p-limit: 3.1.0
retry-request: 7.0.2(encoding@0.1.13)
@@ -5567,9 +6249,9 @@ snapshots:
- supports-color
optional: true
- '@google-cloud/vertexai@1.1.0(encoding@0.1.13)':
+ '@google-cloud/vertexai@1.7.0(encoding@0.1.13)':
dependencies:
- google-auth-library: 9.7.0(encoding@0.1.13)
+ google-auth-library: 9.14.1(encoding@0.1.13)
transitivePeerDependencies:
- encoding
- supports-color
@@ -5630,24 +6312,100 @@ snapshots:
'@js-sdsl/ordered-map@4.4.2': {}
- '@langchain/community@0.0.53(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.53.0(encoding@0.1.13)))(encoding@0.1.13)(firebase-admin@12.3.1(encoding@0.1.13))(google-auth-library@8.9.0(encoding@0.1.13))(jsonwebtoken@9.0.2)':
+ '@langchain/community@0.0.53(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4)))(encoding@0.1.13)(firebase-admin@12.3.1(encoding@0.1.13))(google-auth-library@8.9.0(encoding@0.1.13))(jsonwebtoken@9.0.2)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))':
dependencies:
'@langchain/core': 0.1.61
'@langchain/openai': 0.0.28(encoding@0.1.13)
expr-eval: 2.0.2
flat: 5.0.2
- langsmith: 0.1.14
+ langsmith: 0.1.68(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))
uuid: 9.0.1
zod: 3.22.4
zod-to-json-schema: 3.22.5(zod@3.22.4)
optionalDependencies:
'@pinecone-database/pinecone': 2.2.0
- chromadb: 1.8.1(encoding@0.1.13)(openai@4.53.0(encoding@0.1.13))
+ chromadb: 1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))
+ firebase-admin: 12.3.1(encoding@0.1.13)
+ google-auth-library: 8.9.0(encoding@0.1.13)
+ jsonwebtoken: 9.0.2
+ transitivePeerDependencies:
+ - encoding
+ - openai
+
+ '@langchain/community@0.3.3(@google-cloud/storage@7.10.1(encoding@0.1.13))(@langchain/core@0.1.61)(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4)))(encoding@0.1.13)(firebase-admin@12.3.1(encoding@0.1.13))(google-auth-library@8.9.0(encoding@0.1.13))(handlebars@4.7.8)(ignore@5.3.1)(jsonwebtoken@9.0.2)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))(pdf-parse@1.1.1)':
+ dependencies:
+ '@langchain/core': 0.1.61
+ '@langchain/openai': 0.3.11(@langchain/core@0.1.61)(encoding@0.1.13)
+ binary-extensions: 2.3.0
+ expr-eval: 2.0.2
+ flat: 5.0.2
+ js-yaml: 4.1.0
+ langchain: 0.3.5(@langchain/core@0.1.61)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))
+ langsmith: 0.1.68(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))
+ uuid: 10.0.0
+ zod: 3.22.4
+ zod-to-json-schema: 3.22.5(zod@3.22.4)
+ optionalDependencies:
+ '@google-cloud/storage': 7.10.1(encoding@0.1.13)
+ '@pinecone-database/pinecone': 2.2.0
+ chromadb: 1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))
firebase-admin: 12.3.1(encoding@0.1.13)
google-auth-library: 8.9.0(encoding@0.1.13)
+ ignore: 5.3.1
+ jsonwebtoken: 9.0.2
+ pdf-parse: 1.1.1
+ transitivePeerDependencies:
+ - '@langchain/anthropic'
+ - '@langchain/aws'
+ - '@langchain/cohere'
+ - '@langchain/google-genai'
+ - '@langchain/google-vertexai'
+ - '@langchain/groq'
+ - '@langchain/mistralai'
+ - '@langchain/ollama'
+ - axios
+ - encoding
+ - handlebars
+ - openai
+ - peggy
+
+ '@langchain/community@0.3.3(@google-cloud/storage@7.10.1(encoding@0.1.13))(@langchain/core@0.1.61)(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4)))(encoding@0.1.13)(firebase-admin@12.3.1(encoding@0.1.13))(google-auth-library@9.14.1(encoding@0.1.13))(googleapis@140.0.1(encoding@0.1.13))(handlebars@4.7.8)(ignore@5.3.1)(jsonwebtoken@9.0.2)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))(pdf-parse@1.1.1)':
+ dependencies:
+ '@langchain/core': 0.1.61
+ '@langchain/openai': 0.3.11(@langchain/core@0.1.61)(encoding@0.1.13)
+ binary-extensions: 2.3.0
+ expr-eval: 2.0.2
+ flat: 5.0.2
+ js-yaml: 4.1.0
+ langchain: 0.3.5(@langchain/core@0.1.61)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))
+ langsmith: 0.1.68(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))
+ uuid: 10.0.0
+ zod: 3.22.4
+ zod-to-json-schema: 3.22.5(zod@3.22.4)
+ optionalDependencies:
+ '@google-cloud/storage': 7.10.1(encoding@0.1.13)
+ '@pinecone-database/pinecone': 2.2.0
+ chromadb: 1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))
+ firebase-admin: 12.3.1(encoding@0.1.13)
+ google-auth-library: 9.14.1(encoding@0.1.13)
+ googleapis: 140.0.1(encoding@0.1.13)
+ ignore: 5.3.1
jsonwebtoken: 9.0.2
+ pdf-parse: 1.1.1
transitivePeerDependencies:
+ - '@langchain/anthropic'
+ - '@langchain/aws'
+ - '@langchain/cohere'
+ - '@langchain/google-genai'
+ - '@langchain/google-vertexai'
+ - '@langchain/groq'
+ - '@langchain/mistralai'
+ - '@langchain/ollama'
+ - axios
- encoding
+ - handlebars
+ - openai
+ - peggy
'@langchain/core@0.1.61':
dependencies:
@@ -5664,20 +6422,56 @@ snapshots:
zod: 3.22.4
zod-to-json-schema: 3.22.5(zod@3.22.4)
+ '@langchain/core@0.2.36(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))':
+ dependencies:
+ ansi-styles: 5.2.0
+ camelcase: 6.3.0
+ decamelize: 1.2.0
+ js-tiktoken: 1.0.15
+ langsmith: 0.1.68(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))
+ mustache: 4.2.0
+ p-queue: 6.6.2
+ p-retry: 4.6.2
+ uuid: 10.0.0
+ zod: 3.22.4
+ zod-to-json-schema: 3.22.5(zod@3.22.4)
+ transitivePeerDependencies:
+ - openai
+
'@langchain/openai@0.0.28(encoding@0.1.13)':
dependencies:
'@langchain/core': 0.1.61
- js-tiktoken: 1.0.11
+ js-tiktoken: 1.0.15
openai: 4.53.0(encoding@0.1.13)
zod: 3.22.4
zod-to-json-schema: 3.22.5(zod@3.22.4)
transitivePeerDependencies:
- encoding
+ '@langchain/openai@0.2.11(encoding@0.1.13)':
+ dependencies:
+ '@langchain/core': 0.2.36(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))
+ js-tiktoken: 1.0.15
+ openai: 4.68.4(encoding@0.1.13)(zod@3.22.4)
+ zod: 3.22.4
+ zod-to-json-schema: 3.22.5(zod@3.22.4)
+ transitivePeerDependencies:
+ - encoding
+
+ '@langchain/openai@0.3.11(@langchain/core@0.1.61)(encoding@0.1.13)':
+ dependencies:
+ '@langchain/core': 0.1.61
+ js-tiktoken: 1.0.15
+ openai: 4.68.4(encoding@0.1.13)(zod@3.22.4)
+ zod: 3.22.4
+ zod-to-json-schema: 3.22.5(zod@3.22.4)
+ transitivePeerDependencies:
+ - encoding
+
'@langchain/textsplitters@0.0.0':
dependencies:
'@langchain/core': 0.1.61
- js-tiktoken: 1.0.11
+ js-tiktoken: 1.0.15
'@mapbox/node-pre-gyp@1.0.11(encoding@0.1.13)':
dependencies:
@@ -5688,7 +6482,7 @@ snapshots:
nopt: 5.0.0
npmlog: 5.0.1
rimraf: 3.0.2
- semver: 7.6.0
+ semver: 7.6.3
tar: 6.2.1
transitivePeerDependencies:
- encoding
@@ -6522,6 +7316,8 @@ snapshots:
'@types/triple-beam@1.3.5': {}
+ '@types/uuid@10.0.0': {}
+
'@types/uuid@9.0.8': {}
abbrev@1.1.1:
@@ -6660,13 +7456,7 @@ snapshots:
binary-search@1.3.6: {}
- bl@4.1.0:
- dependencies:
- buffer: 5.7.1
- inherits: 2.0.4
- readable-stream: 3.6.2
-
- body-parser@1.20.2:
+ body-parser@1.20.3:
dependencies:
bytes: 3.1.2
content-type: 1.0.5
@@ -6676,7 +7466,7 @@ snapshots:
http-errors: 2.0.0
iconv-lite: 0.4.24
on-finished: 2.4.1
- qs: 6.11.0
+ qs: 6.13.0
raw-body: 2.5.2
type-is: 1.6.18
unpipe: 1.0.0
@@ -6698,11 +7488,6 @@ snapshots:
buffer-equal-constant-time@1.0.1: {}
- buffer@5.7.1:
- dependencies:
- base64-js: 1.5.1
- ieee754: 1.2.1
-
bundle-require@4.0.2(esbuild@0.19.12):
dependencies:
esbuild: 0.19.12
@@ -6757,17 +7542,15 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
- chownr@1.1.4: {}
-
chownr@2.0.0:
optional: true
- chromadb@1.8.1(encoding@0.1.13)(openai@4.53.0(encoding@0.1.13)):
+ chromadb@1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4)):
dependencies:
cliui: 8.0.1
isomorphic-fetch: 3.0.0(encoding@0.1.13)
optionalDependencies:
- openai: 4.53.0(encoding@0.1.13)
+ openai: 4.68.4(encoding@0.1.13)(zod@3.22.4)
transitivePeerDependencies:
- encoding
@@ -6919,12 +7702,6 @@ snapshots:
mimic-response: 2.1.0
optional: true
- decompress-response@6.0.0:
- dependencies:
- mimic-response: 3.1.0
-
- deep-extend@0.6.0: {}
-
define-data-property@1.1.4:
dependencies:
es-define-property: 1.0.0
@@ -6946,7 +7723,8 @@ snapshots:
destroy@1.2.0: {}
- detect-libc@2.0.3: {}
+ detect-libc@2.0.3:
+ optional: true
digest-fetch@1.3.0:
dependencies:
@@ -6992,6 +7770,8 @@ snapshots:
encodeurl@1.0.2: {}
+ encodeurl@2.0.0: {}
+
encoding@0.1.13:
dependencies:
iconv-lite: 0.6.3
@@ -7133,38 +7913,72 @@ snapshots:
signal-exit: 3.0.7
strip-final-newline: 2.0.0
- expand-template@2.0.3: {}
-
expr-eval@2.0.2: {}
- express@4.19.2:
+ express@4.20.0:
+ dependencies:
+ accepts: 1.3.8
+ array-flatten: 1.1.1
+ body-parser: 1.20.3
+ content-disposition: 0.5.4
+ content-type: 1.0.5
+ cookie: 0.6.0
+ cookie-signature: 1.0.6
+ debug: 2.6.9
+ depd: 2.0.0
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ etag: 1.8.1
+ finalhandler: 1.2.0
+ fresh: 0.5.2
+ http-errors: 2.0.0
+ merge-descriptors: 1.0.3
+ methods: 1.1.2
+ on-finished: 2.4.1
+ parseurl: 1.3.3
+ path-to-regexp: 0.1.10
+ proxy-addr: 2.0.7
+ qs: 6.11.0
+ range-parser: 1.2.1
+ safe-buffer: 5.2.1
+ send: 0.19.0
+ serve-static: 1.16.0
+ setprototypeof: 1.2.0
+ statuses: 2.0.1
+ type-is: 1.6.18
+ utils-merge: 1.0.1
+ vary: 1.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ express@4.21.0:
dependencies:
accepts: 1.3.8
array-flatten: 1.1.1
- body-parser: 1.20.2
+ body-parser: 1.20.3
content-disposition: 0.5.4
content-type: 1.0.5
cookie: 0.6.0
cookie-signature: 1.0.6
debug: 2.6.9
depd: 2.0.0
- encodeurl: 1.0.2
+ encodeurl: 2.0.0
escape-html: 1.0.3
etag: 1.8.1
- finalhandler: 1.2.0
+ finalhandler: 1.3.1
fresh: 0.5.2
http-errors: 2.0.0
- merge-descriptors: 1.0.1
+ merge-descriptors: 1.0.3
methods: 1.1.2
on-finished: 2.4.1
parseurl: 1.3.3
- path-to-regexp: 0.1.7
+ path-to-regexp: 0.1.10
proxy-addr: 2.0.7
- qs: 6.11.0
+ qs: 6.13.0
range-parser: 1.2.1
safe-buffer: 5.2.1
- send: 0.18.0
- serve-static: 1.15.0
+ send: 0.19.0
+ serve-static: 1.16.2
setprototypeof: 1.2.0
statuses: 2.0.1
type-is: 1.6.18
@@ -7177,11 +7991,6 @@ snapshots:
farmhash-modern@1.1.0: {}
- farmhash@3.3.1:
- dependencies:
- node-addon-api: 5.1.0
- prebuild-install: 7.1.2
-
fast-deep-equal@3.1.3: {}
fast-glob@3.3.2:
@@ -7192,7 +8001,8 @@ snapshots:
merge2: 1.4.1
micromatch: 4.0.5
- fast-text-encoding@1.0.6: {}
+ fast-text-encoding@1.0.6:
+ optional: true
fast-xml-parser@4.3.6:
dependencies:
@@ -7234,47 +8044,21 @@ snapshots:
transitivePeerDependencies:
- supports-color
- find-package@1.0.0:
- dependencies:
- parents: 1.0.1
-
- firebase-admin@12.1.0(encoding@0.1.13):
+ finalhandler@1.3.1:
dependencies:
- '@fastify/busboy': 2.1.1
- '@firebase/database-compat': 1.0.4
- '@firebase/database-types': 1.0.2
- '@types/node': 20.11.30
- farmhash: 3.3.1
- jsonwebtoken: 9.0.2
- jwks-rsa: 3.1.0
- long: 5.2.3
- node-forge: 1.3.1
- uuid: 9.0.1
- optionalDependencies:
- '@google-cloud/firestore': 7.8.0(encoding@0.1.13)
- '@google-cloud/storage': 7.10.1(encoding@0.1.13)
+ debug: 2.6.9
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ on-finished: 2.4.1
+ parseurl: 1.3.3
+ statuses: 2.0.1
+ unpipe: 1.0.0
transitivePeerDependencies:
- - encoding
- supports-color
- firebase-admin@12.2.0(encoding@0.1.13):
+ find-package@1.0.0:
dependencies:
- '@fastify/busboy': 2.1.1
- '@firebase/database-compat': 1.0.4
- '@firebase/database-types': 1.0.2
- '@types/node': 20.11.30
- farmhash-modern: 1.1.0
- jsonwebtoken: 9.0.2
- jwks-rsa: 3.1.0
- long: 5.2.3
- node-forge: 1.3.1
- uuid: 10.0.0
- optionalDependencies:
- '@google-cloud/firestore': 7.8.0(encoding@0.1.13)
- '@google-cloud/storage': 7.10.1(encoding@0.1.13)
- transitivePeerDependencies:
- - encoding
- - supports-color
+ parents: 1.0.1
firebase-admin@12.3.1(encoding@0.1.13):
dependencies:
@@ -7294,26 +8078,13 @@ snapshots:
- encoding
- supports-color
- firebase-functions@4.8.1(encoding@0.1.13)(firebase-admin@12.2.0(encoding@0.1.13)):
+ firebase-functions@5.0.1(firebase-admin@12.3.1(encoding@0.1.13)):
dependencies:
'@types/cors': 2.8.17
'@types/express': 4.17.3
cors: 2.8.5
- express: 4.19.2
- firebase-admin: 12.2.0(encoding@0.1.13)
- node-fetch: 2.7.0(encoding@0.1.13)
- protobufjs: 7.2.6
- transitivePeerDependencies:
- - encoding
- - supports-color
-
- firebase-functions@5.0.1(firebase-admin@12.1.0(encoding@0.1.13)):
- dependencies:
- '@types/cors': 2.8.17
- '@types/express': 4.17.3
- cors: 2.8.5
- express: 4.19.2
- firebase-admin: 12.1.0(encoding@0.1.13)
+ express: 4.21.0
+ firebase-admin: 12.3.1(encoding@0.1.13)
protobufjs: 7.2.6
transitivePeerDependencies:
- supports-color
@@ -7362,8 +8133,6 @@ snapshots:
dependencies:
js-yaml: 3.14.1
- fs-constants@1.0.0: {}
-
fs-minipass@2.1.0:
dependencies:
minipass: 3.3.6
@@ -7401,17 +8170,6 @@ snapshots:
wide-align: 1.1.5
optional: true
- gaxios@4.3.3(encoding@0.1.13):
- dependencies:
- abort-controller: 3.0.0
- extend: 3.0.2
- https-proxy-agent: 5.0.1
- is-stream: 2.0.1
- node-fetch: 2.7.0(encoding@0.1.13)
- transitivePeerDependencies:
- - encoding
- - supports-color
-
gaxios@5.1.3(encoding@0.1.13):
dependencies:
extend: 3.0.2
@@ -7421,6 +8179,7 @@ snapshots:
transitivePeerDependencies:
- encoding
- supports-color
+ optional: true
gaxios@6.3.0(encoding@0.1.13):
dependencies:
@@ -7432,14 +8191,6 @@ snapshots:
- encoding
- supports-color
- gcp-metadata@4.3.1(encoding@0.1.13):
- dependencies:
- gaxios: 4.3.3(encoding@0.1.13)
- json-bigint: 1.0.0
- transitivePeerDependencies:
- - encoding
- - supports-color
-
gcp-metadata@5.3.0(encoding@0.1.13):
dependencies:
gaxios: 5.1.3(encoding@0.1.13)
@@ -7447,6 +8198,7 @@ snapshots:
transitivePeerDependencies:
- encoding
- supports-color
+ optional: true
gcp-metadata@6.1.0(encoding@0.1.13):
dependencies:
@@ -7484,8 +8236,6 @@ snapshots:
dependencies:
resolve-pkg-maps: 1.0.0
- github-from-package@0.0.0: {}
-
glob-parent@5.1.2:
dependencies:
is-glob: 4.0.3
@@ -7498,6 +8248,15 @@ snapshots:
minipass: 7.0.4
path-scurry: 1.10.2
+ glob@11.0.0:
+ dependencies:
+ foreground-child: 3.1.1
+ jackspeak: 4.0.2
+ minimatch: 10.0.1
+ minipass: 7.1.2
+ package-json-from-dist: 1.0.1
+ path-scurry: 2.0.0
+
glob@7.2.3:
dependencies:
fs.realpath: 1.0.0
@@ -7521,38 +8280,35 @@ snapshots:
merge2: 1.4.1
slash: 3.0.0
- google-auth-library@7.14.1(encoding@0.1.13):
+ google-auth-library@8.9.0(encoding@0.1.13):
dependencies:
arrify: 2.0.1
base64-js: 1.5.1
ecdsa-sig-formatter: 1.0.11
fast-text-encoding: 1.0.6
- gaxios: 4.3.3(encoding@0.1.13)
- gcp-metadata: 4.3.1(encoding@0.1.13)
- gtoken: 5.3.2(encoding@0.1.13)
+ gaxios: 5.1.3(encoding@0.1.13)
+ gcp-metadata: 5.3.0(encoding@0.1.13)
+ gtoken: 6.1.2(encoding@0.1.13)
jws: 4.0.0
lru-cache: 6.0.0
transitivePeerDependencies:
- encoding
- supports-color
+ optional: true
- google-auth-library@8.9.0(encoding@0.1.13):
+ google-auth-library@9.11.0(encoding@0.1.13):
dependencies:
- arrify: 2.0.1
base64-js: 1.5.1
ecdsa-sig-formatter: 1.0.11
- fast-text-encoding: 1.0.6
- gaxios: 5.1.3(encoding@0.1.13)
- gcp-metadata: 5.3.0(encoding@0.1.13)
- gtoken: 6.1.2(encoding@0.1.13)
+ gaxios: 6.3.0(encoding@0.1.13)
+ gcp-metadata: 6.1.0(encoding@0.1.13)
+ gtoken: 7.1.0(encoding@0.1.13)
jws: 4.0.0
- lru-cache: 6.0.0
transitivePeerDependencies:
- encoding
- supports-color
- optional: true
- google-auth-library@9.11.0(encoding@0.1.13):
+ google-auth-library@9.14.1(encoding@0.1.13):
dependencies:
base64-js: 1.5.1
ecdsa-sig-formatter: 1.0.11
@@ -7601,7 +8357,7 @@ snapshots:
'@types/long': 4.0.2
abort-controller: 3.0.0
duplexify: 4.1.3
- google-auth-library: 9.11.0(encoding@0.1.13)
+ google-auth-library: 9.14.1(encoding@0.1.13)
node-fetch: 2.7.0(encoding@0.1.13)
object-hash: 3.0.0
proto3-json-serializer: 2.0.2
@@ -7612,26 +8368,17 @@ snapshots:
- encoding
- supports-color
- google-p12-pem@3.1.4:
- dependencies:
- node-forge: 1.3.1
-
google-p12-pem@4.0.1:
dependencies:
node-forge: 1.3.1
optional: true
- google-proto-files@3.0.3:
- dependencies:
- protobufjs: 7.2.6
- walkdir: 0.4.1
-
googleapis-common@7.2.0(encoding@0.1.13):
dependencies:
extend: 3.0.2
gaxios: 6.3.0(encoding@0.1.13)
- google-auth-library: 9.11.0(encoding@0.1.13)
- qs: 6.12.0
+ google-auth-library: 9.14.1(encoding@0.1.13)
+ qs: 6.13.0
url-template: 2.0.8
uuid: 9.0.1
transitivePeerDependencies:
@@ -7648,7 +8395,7 @@ snapshots:
googleapis@140.0.1(encoding@0.1.13):
dependencies:
- google-auth-library: 9.7.0(encoding@0.1.13)
+ google-auth-library: 9.14.1(encoding@0.1.13)
googleapis-common: 7.2.0(encoding@0.1.13)
transitivePeerDependencies:
- encoding
@@ -7660,15 +8407,6 @@ snapshots:
graceful-fs@4.2.11: {}
- gtoken@5.3.2(encoding@0.1.13):
- dependencies:
- gaxios: 4.3.3(encoding@0.1.13)
- google-p12-pem: 3.1.4
- jws: 4.0.0
- transitivePeerDependencies:
- - encoding
- - supports-color
-
gtoken@6.1.2(encoding@0.1.13):
dependencies:
gaxios: 5.1.3(encoding@0.1.13)
@@ -7769,8 +8507,6 @@ snapshots:
dependencies:
safer-buffer: 2.1.2
- ieee754@1.2.1: {}
-
ignore@5.3.1: {}
import-in-the-middle@1.11.0:
@@ -7790,8 +8526,6 @@ snapshots:
inherits@2.0.4: {}
- ini@1.3.8: {}
-
internal-slot@1.0.7:
dependencies:
es-errors: 1.3.0
@@ -7904,6 +8638,10 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
+ jackspeak@4.0.2:
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+
jake@10.9.1:
dependencies:
async: 3.2.5
@@ -7919,6 +8657,10 @@ snapshots:
dependencies:
base64-js: 1.5.1
+ js-tiktoken@1.0.15:
+ dependencies:
+ base64-js: 1.5.1
+
js-yaml@3.14.1:
dependencies:
argparse: 1.0.10
@@ -7990,10 +8732,10 @@ snapshots:
kuler@2.0.0: {}
- langchain@0.1.36(@google-cloud/storage@7.10.1(encoding@0.1.13))(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.53.0(encoding@0.1.13)))(encoding@0.1.13)(fast-xml-parser@4.3.6)(firebase-admin@12.3.1(encoding@0.1.13))(google-auth-library@8.9.0(encoding@0.1.13))(handlebars@4.7.8)(ignore@5.3.1)(jsonwebtoken@9.0.2)(pdf-parse@1.1.1):
+ langchain@0.1.36(@google-cloud/storage@7.10.1(encoding@0.1.13))(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4)))(encoding@0.1.13)(fast-xml-parser@4.3.6)(firebase-admin@12.3.1(encoding@0.1.13))(google-auth-library@8.9.0(encoding@0.1.13))(handlebars@4.7.8)(ignore@5.3.1)(jsonwebtoken@9.0.2)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))(pdf-parse@1.1.1):
dependencies:
'@anthropic-ai/sdk': 0.9.1(encoding@0.1.13)
- '@langchain/community': 0.0.53(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.53.0(encoding@0.1.13)))(encoding@0.1.13)(firebase-admin@12.3.1(encoding@0.1.13))(google-auth-library@8.9.0(encoding@0.1.13))(jsonwebtoken@9.0.2)
+ '@langchain/community': 0.0.53(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4)))(encoding@0.1.13)(firebase-admin@12.3.1(encoding@0.1.13))(google-auth-library@8.9.0(encoding@0.1.13))(jsonwebtoken@9.0.2)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))
'@langchain/core': 0.1.61
'@langchain/openai': 0.0.28(encoding@0.1.13)
'@langchain/textsplitters': 0.0.0
@@ -8013,7 +8755,7 @@ snapshots:
optionalDependencies:
'@google-cloud/storage': 7.10.1(encoding@0.1.13)
'@pinecone-database/pinecone': 2.2.0
- chromadb: 1.8.1(encoding@0.1.13)(openai@4.53.0(encoding@0.1.13))
+ chromadb: 1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))
fast-xml-parser: 4.3.6
google-auth-library: 8.9.0(encoding@0.1.13)
handlebars: 4.7.8
@@ -8079,6 +8821,7 @@ snapshots:
- lunary
- mysql2
- neo4j-driver
+ - openai
- pg
- pg-copy-streams
- pickleparser
@@ -8089,6 +8832,55 @@ snapshots:
- vectordb
- voy-search
+ langchain@0.2.19(@langchain/community@0.3.3(@google-cloud/storage@7.10.1(encoding@0.1.13))(@langchain/core@0.1.61)(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4)))(encoding@0.1.13)(firebase-admin@12.3.1(encoding@0.1.13))(google-auth-library@9.14.1(encoding@0.1.13))(googleapis@140.0.1(encoding@0.1.13))(handlebars@4.7.8)(ignore@5.3.1)(jsonwebtoken@9.0.2)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))(pdf-parse@1.1.1))(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4)))(encoding@0.1.13)(fast-xml-parser@4.3.6)(handlebars@4.7.8)(ignore@5.3.1)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))(pdf-parse@1.1.1):
+ dependencies:
+ '@langchain/core': 0.2.36(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))
+ '@langchain/openai': 0.2.11(encoding@0.1.13)
+ '@langchain/textsplitters': 0.0.0
+ binary-extensions: 2.3.0
+ js-tiktoken: 1.0.15
+ js-yaml: 4.1.0
+ jsonpointer: 5.0.1
+ langsmith: 0.1.68(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))
+ openapi-types: 12.1.3
+ p-retry: 4.6.2
+ uuid: 10.0.0
+ yaml: 2.4.1
+ zod: 3.22.4
+ zod-to-json-schema: 3.22.5(zod@3.22.4)
+ optionalDependencies:
+ '@langchain/community': 0.3.3(@google-cloud/storage@7.10.1(encoding@0.1.13))(@langchain/core@0.1.61)(@pinecone-database/pinecone@2.2.0)(chromadb@1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4)))(encoding@0.1.13)(firebase-admin@12.3.1(encoding@0.1.13))(google-auth-library@9.14.1(encoding@0.1.13))(googleapis@140.0.1(encoding@0.1.13))(handlebars@4.7.8)(ignore@5.3.1)(jsonwebtoken@9.0.2)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))(pdf-parse@1.1.1)
+ '@pinecone-database/pinecone': 2.2.0
+ chromadb: 1.8.1(encoding@0.1.13)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))
+ fast-xml-parser: 4.3.6
+ handlebars: 4.7.8
+ ignore: 5.3.1
+ pdf-parse: 1.1.1
+ transitivePeerDependencies:
+ - encoding
+ - openai
+
+ langchain@0.3.5(@langchain/core@0.1.61)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.68.4(encoding@0.1.13)(zod@3.22.4)):
+ dependencies:
+ '@langchain/core': 0.1.61
+ '@langchain/openai': 0.3.11(@langchain/core@0.1.61)(encoding@0.1.13)
+ '@langchain/textsplitters': 0.0.0
+ js-tiktoken: 1.0.15
+ js-yaml: 4.1.0
+ jsonpointer: 5.0.1
+ langsmith: 0.2.3(openai@4.68.4(encoding@0.1.13)(zod@3.22.4))
+ openapi-types: 12.1.3
+ p-retry: 4.6.2
+ uuid: 10.0.0
+ yaml: 2.4.1
+ zod: 3.22.4
+ zod-to-json-schema: 3.22.5(zod@3.22.4)
+ optionalDependencies:
+ handlebars: 4.7.8
+ transitivePeerDependencies:
+ - encoding
+ - openai
+
langchainhub@0.0.8: {}
langsmith@0.1.14:
@@ -8099,6 +8891,28 @@ snapshots:
p-retry: 4.6.2
uuid: 9.0.1
+ langsmith@0.1.68(openai@4.68.4(encoding@0.1.13)(zod@3.22.4)):
+ dependencies:
+ '@types/uuid': 10.0.0
+ commander: 10.0.1
+ p-queue: 6.6.2
+ p-retry: 4.6.2
+ semver: 7.6.3
+ uuid: 10.0.0
+ optionalDependencies:
+ openai: 4.68.4(encoding@0.1.13)(zod@3.22.4)
+
+ langsmith@0.2.3(openai@4.68.4(encoding@0.1.13)(zod@3.22.4)):
+ dependencies:
+ '@types/uuid': 10.0.0
+ commander: 10.0.1
+ p-queue: 6.6.2
+ p-retry: 4.6.2
+ semver: 7.6.3
+ uuid: 10.0.0
+ optionalDependencies:
+ openai: 4.68.4(encoding@0.1.13)(zod@3.22.4)
+
lilconfig@3.1.1: {}
limiter@1.1.5: {}
@@ -8155,6 +8969,8 @@ snapshots:
lru-cache@10.2.0: {}
+ lru-cache@11.0.1: {}
+
lru-cache@4.0.2:
dependencies:
pseudomap: 1.0.2
@@ -8184,7 +9000,7 @@ snapshots:
memorystream@0.3.1: {}
- merge-descriptors@1.0.1: {}
+ merge-descriptors@1.0.3: {}
merge-stream@2.0.0: {}
@@ -8213,7 +9029,9 @@ snapshots:
mimic-response@2.1.0:
optional: true
- mimic-response@3.1.0: {}
+ minimatch@10.0.1:
+ dependencies:
+ brace-expansion: 2.0.1
minimatch@3.1.2:
dependencies:
@@ -8239,14 +9057,14 @@ snapshots:
minipass@7.0.4: {}
+ minipass@7.1.2: {}
+
minizlib@2.1.2:
dependencies:
minipass: 3.3.6
yallist: 4.0.0
optional: true
- mkdirp-classic@0.5.3: {}
-
mkdirp@1.0.4:
optional: true
@@ -8290,20 +9108,12 @@ snapshots:
nan@2.19.0:
optional: true
- napi-build-utils@1.0.2: {}
-
negotiator@0.6.3: {}
neo-async@2.6.2: {}
nice-try@1.0.5: {}
- node-abi@3.62.0:
- dependencies:
- semver: 7.6.0
-
- node-addon-api@5.1.0: {}
-
node-domexception@1.0.0: {}
node-ensure@0.0.0: {}
@@ -8410,6 +9220,20 @@ snapshots:
transitivePeerDependencies:
- encoding
+ openai@4.68.4(encoding@0.1.13)(zod@3.22.4):
+ dependencies:
+ '@types/node': 18.19.31
+ '@types/node-fetch': 2.6.11
+ abort-controller: 3.0.0
+ agentkeepalive: 4.5.0
+ form-data-encoder: 1.7.2
+ formdata-node: 4.4.1
+ node-fetch: 2.7.0(encoding@0.1.13)
+ optionalDependencies:
+ zod: 3.22.4
+ transitivePeerDependencies:
+ - encoding
+
openapi-types@12.1.3: {}
p-finally@1.0.0: {}
@@ -8433,6 +9257,8 @@ snapshots:
dependencies:
p-finally: 1.0.0
+ package-json-from-dist@1.0.1: {}
+
parents@1.0.1:
dependencies:
path-platform: 0.11.15
@@ -8462,7 +9288,12 @@ snapshots:
lru-cache: 10.2.0
minipass: 7.0.4
- path-to-regexp@0.1.7: {}
+ path-scurry@2.0.0:
+ dependencies:
+ lru-cache: 11.0.1
+ minipass: 7.1.2
+
+ path-to-regexp@0.1.10: {}
path-type@3.0.0:
dependencies:
@@ -8535,21 +9366,6 @@ snapshots:
dependencies:
xtend: 4.0.2
- prebuild-install@7.1.2:
- dependencies:
- detect-libc: 2.0.3
- expand-template: 2.0.3
- github-from-package: 0.0.0
- minimist: 1.2.8
- mkdirp-classic: 0.5.3
- napi-build-utils: 1.0.2
- node-abi: 3.62.0
- pump: 3.0.0
- rc: 1.2.8
- simple-get: 4.0.1
- tar-fs: 2.1.1
- tunnel-agent: 0.6.0
-
prettier-plugin-organize-imports@3.2.4(prettier@3.2.5)(typescript@4.9.5):
dependencies:
prettier: 3.2.5
@@ -8625,7 +9441,7 @@ snapshots:
dependencies:
side-channel: 1.0.6
- qs@6.12.0:
+ qs@6.13.0:
dependencies:
side-channel: 1.0.6
@@ -8640,13 +9456,6 @@ snapshots:
iconv-lite: 0.4.24
unpipe: 1.0.0
- rc@1.2.8:
- dependencies:
- deep-extend: 0.6.0
- ini: 1.3.8
- minimist: 1.2.8
- strip-json-comments: 2.0.1
-
read-pkg@3.0.0:
dependencies:
load-json-file: 4.0.0
@@ -8710,6 +9519,11 @@ snapshots:
glob: 7.2.3
optional: true
+ rimraf@6.0.1:
+ dependencies:
+ glob: 11.0.0
+ package-json-from-dist: 1.0.1
+
rollup@4.13.2:
dependencies:
'@types/estree': 1.0.5
@@ -8763,6 +9577,8 @@ snapshots:
dependencies:
lru-cache: 6.0.0
+ semver@7.6.3: {}
+
send@0.18.0:
dependencies:
debug: 2.6.9
@@ -8781,7 +9597,25 @@ snapshots:
transitivePeerDependencies:
- supports-color
- serve-static@1.15.0:
+ send@0.19.0:
+ dependencies:
+ debug: 2.6.9
+ depd: 2.0.0
+ destroy: 1.2.0
+ encodeurl: 1.0.2
+ escape-html: 1.0.3
+ etag: 1.8.1
+ fresh: 0.5.2
+ http-errors: 2.0.0
+ mime: 1.6.0
+ ms: 2.1.3
+ on-finished: 2.4.1
+ range-parser: 1.2.1
+ statuses: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ serve-static@1.16.0:
dependencies:
encodeurl: 1.0.2
escape-html: 1.0.3
@@ -8790,6 +9624,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ serve-static@1.16.2:
+ dependencies:
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ parseurl: 1.3.3
+ send: 0.19.0
+ transitivePeerDependencies:
+ - supports-color
+
set-blocking@2.0.0:
optional: true
@@ -8838,7 +9681,8 @@ snapshots:
signal-exit@4.1.0: {}
- simple-concat@1.0.1: {}
+ simple-concat@1.0.1:
+ optional: true
simple-get@3.1.1:
dependencies:
@@ -8847,12 +9691,6 @@ snapshots:
simple-concat: 1.0.1
optional: true
- simple-get@4.0.1:
- dependencies:
- decompress-response: 6.0.0
- once: 1.4.0
- simple-concat: 1.0.1
-
simple-swizzle@0.2.2:
dependencies:
is-arrayish: 0.3.2
@@ -8945,8 +9783,6 @@ snapshots:
strip-final-newline@2.0.0: {}
- strip-json-comments@2.0.1: {}
-
strnum@1.0.5:
optional: true
@@ -8972,21 +9808,6 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
- tar-fs@2.1.1:
- dependencies:
- chownr: 1.1.4
- mkdirp-classic: 0.5.3
- pump: 3.0.0
- tar-stream: 2.2.0
-
- tar-stream@2.2.0:
- dependencies:
- bl: 4.1.0
- end-of-stream: 1.4.4
- fs-constants: 1.0.0
- inherits: 2.0.4
- readable-stream: 3.6.2
-
tar@6.2.1:
dependencies:
chownr: 2.0.0
@@ -9034,6 +9855,10 @@ snapshots:
triple-beam@1.4.1: {}
+ truncate-utf8-bytes@1.0.2:
+ dependencies:
+ utf8-byte-length: 1.0.5
+
ts-interface-checker@0.1.13: {}
ts-md5@1.3.1: {}
@@ -9069,10 +9894,6 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
- tunnel-agent@0.6.0:
- dependencies:
- safe-buffer: 5.2.1
-
type-is@1.6.18:
dependencies:
media-typer: 0.3.0
@@ -9116,6 +9937,8 @@ snapshots:
typescript@5.5.3: {}
+ typescript@5.6.2: {}
+
uglify-js@3.17.4:
optional: true
@@ -9138,6 +9961,8 @@ snapshots:
url-template@2.0.8: {}
+ utf8-byte-length@1.0.5: {}
+
util-deprecate@1.0.2: {}
util@0.10.4:
@@ -9163,8 +9988,6 @@ snapshots:
vary@1.1.2: {}
- walkdir@0.4.1: {}
-
web-streams-polyfill@3.3.3: {}
web-streams-polyfill@4.0.0-beta.3: {}
diff --git a/js/testapps/anthropic-models/package.json b/js/testapps/anthropic-models/package.json
index d9fbcdc73..b9c083749 100644
--- a/js/testapps/anthropic-models/package.json
+++ b/js/testapps/anthropic-models/package.json
@@ -19,7 +19,7 @@
"@genkit-ai/firebase": "workspace:*",
"@genkit-ai/flow": "workspace:*",
"@genkit-ai/vertexai": "workspace:*",
- "express": "^4.19.2",
+ "express": "^4.21.0",
"zod": "3.22.4"
},
"devDependencies": {
diff --git a/js/testapps/basic-gemini/package.json b/js/testapps/basic-gemini/package.json
new file mode 100644
index 000000000..8ae47a2da
--- /dev/null
+++ b/js/testapps/basic-gemini/package.json
@@ -0,0 +1,28 @@
+{
+ "name": "basic-gemini",
+ "version": "1.0.0",
+ "description": "",
+ "main": "lib/index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "start": "node lib/index.js",
+ "build": "tsc",
+ "build:watch": "tsc --watch"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "@genkit-ai/ai": "workspace:*",
+ "@genkit-ai/core": "workspace:*",
+ "@genkit-ai/dotprompt": "workspace:*",
+ "@genkit-ai/flow": "workspace:*",
+ "@genkit-ai/googleai": "workspace:*",
+ "@genkit-ai/vertexai": "workspace:*",
+ "express": "^4.21.0",
+ "zod": "^3.22.4"
+ },
+ "devDependencies": {
+ "typescript": "^5.6.2"
+ }
+}
diff --git a/js/testapps/basic-gemini/src/index.ts b/js/testapps/basic-gemini/src/index.ts
new file mode 100644
index 000000000..e91d94dfd
--- /dev/null
+++ b/js/testapps/basic-gemini/src/index.ts
@@ -0,0 +1,172 @@
+/**
+ * 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 * as z from 'zod';
+
+// Import the Genkit core libraries and plugins.
+import { defineTool, generate } from '@genkit-ai/ai';
+import { configureGenkit } from '@genkit-ai/core';
+import { defineFlow, startFlowsServer } from '@genkit-ai/flow';
+import {
+ gemini15Flash as gemini15FlashGoogleAi,
+ googleAI,
+} from '@genkit-ai/googleai';
+
+// Import models from the Google AI plugin. The Google AI API provides access to
+
+import {
+ gemini15Flash as gemini15FlashVertexAi,
+ vertexAI,
+} from '@genkit-ai/vertexai';
+
+const provider = process.env.PROVIDER || 'vertexai';
+
+configureGenkit({
+ plugins: [vertexAI(), googleAI()],
+ // Log debug output to tbe console.
+ logLevel: 'debug',
+ // Perform OpenTelemetry instrumentation and enable trace collection.
+ enableTracingAndMetrics: true,
+});
+
+const jokeSubjectGenerator = defineTool(
+ {
+ name: 'jokeSubjectGenerator',
+ description: 'can be called to generate a subject for a joke',
+ inputSchema: z.object({ input: z.string() }),
+ outputSchema: z.string(),
+ },
+ async (input) => {
+ throw new Error('banana');
+ return 'banana';
+ }
+);
+
+// Define a simple flow that prompts an LLM to generate menu suggestions.
+export const jokeFlow = defineFlow(
+ {
+ name: 'jokeFlow',
+ inputSchema: z.object({ provider: z.enum(['vertexai', 'googleai']) }),
+ outputSchema: z.any(),
+ },
+ async ({ provider }) => {
+ // Construct a request and send it to the model API.
+ if (provider === 'vertexai') {
+ const llmResponse = await generate({
+ model: gemini15FlashVertexAi,
+ config: {
+ temperature: 2,
+ },
+ output: {
+ schema: z.object({ jokeSubject: z.string() }),
+ },
+ tools: [jokeSubjectGenerator],
+ prompt: `come up with a subject to joke about (using the function provided)`,
+ });
+
+ return llmResponse.output();
+ } else {
+ const llmResponse = await generate({
+ model: gemini15FlashGoogleAi,
+ config: {
+ temperature: 2,
+ },
+ output: {
+ schema: z.object({ jokeSubject: z.string() }),
+ },
+ tools: [jokeSubjectGenerator],
+ prompt: `come up with a subject to joke about (using the function provided)`,
+ });
+ return llmResponse.output();
+ }
+
+ // Handle the response from the model API. In this sample, we just convert
+ // it to a string, but more complicated flows might coerce the response into
+ }
+);
+
+export const streamingFlow = defineFlow(
+ {
+ name: 'streamingFlow',
+ inputSchema: z.object({ provider: z.enum(['vertexai', 'googleai']) }),
+ outputSchema: z.any(),
+ },
+ async ({ provider }) => {
+ let count = 0;
+
+ if (provider === 'vertexai') {
+ // Construct a request and send it to the model API.
+ const llmResponse = await generate({
+ model: gemini15FlashVertexAi,
+ config: {
+ temperature: 2,
+ },
+ output: {
+ schema: z.array(
+ z.object({
+ name: z.string(),
+ age: z.number(),
+ description: z.string(),
+ personal_statement: z.string(),
+ })
+ ),
+ },
+ tools: [jokeSubjectGenerator],
+ prompt: `come up with some test user data. 10 users long`,
+ streamingCallback: (chunk) => {
+ count++;
+ const output = chunk.text();
+ console.log(`chunk ${count}`, output);
+ return output;
+ },
+ });
+
+ return llmResponse.output()!;
+ } else {
+ const llmResponse = await generate({
+ model: gemini15FlashGoogleAi,
+ config: {
+ temperature: 2,
+ },
+ output: {
+ schema: z.array(
+ z.object({
+ name: z.string(),
+ age: z.number(),
+ description: z.string(),
+ personal_statement: z.string(),
+ })
+ ),
+ },
+ tools: [jokeSubjectGenerator],
+ prompt: `come up with some test user data. 10 users long`,
+ streamingCallback: (chunk) => {
+ count++;
+ const output = chunk.text();
+ console.log(`chunk ${count}`, output);
+ return output;
+ },
+ });
+ return llmResponse.output()!;
+ }
+ }
+);
+
+// Start a flow server, which exposes your flows as HTTP endpoints. This call
+// must come last, after all of your plug-in configuration and flow definitions.
+// You can optionally specify a subset of flows to serve, and configure some
+// HTTP server options, but by default, the flow server serves all defined flows.
+startFlowsServer();
diff --git a/js/testapps/basic-gemini/tsconfig.json b/js/testapps/basic-gemini/tsconfig.json
new file mode 100644
index 000000000..efbb566bf
--- /dev/null
+++ b/js/testapps/basic-gemini/tsconfig.json
@@ -0,0 +1,14 @@
+{
+ "compileOnSave": true,
+ "include": ["src"],
+ "compilerOptions": {
+ "module": "commonjs",
+ "noImplicitReturns": true,
+ "outDir": "lib",
+ "sourceMap": true,
+ "strict": true,
+ "target": "es2017",
+ "skipLibCheck": true,
+ "esModuleInterop": true
+ }
+}
diff --git a/js/testapps/byo-evaluator/package.json b/js/testapps/byo-evaluator/package.json
index 16479c551..9ada5a086 100644
--- a/js/testapps/byo-evaluator/package.json
+++ b/js/testapps/byo-evaluator/package.json
@@ -7,7 +7,7 @@
"start": "node lib/index.js",
"compile": "tsc",
"build": "pnpm build:clean && pnpm compile",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build:watch": "tsc --watch"
},
"keywords": [],
@@ -27,6 +27,7 @@
"zod": "^3.22.4"
},
"devDependencies": {
- "typescript": "^5.3.3"
+ "typescript": "^5.3.3",
+ "rimraf": "^6.0.1"
}
}
diff --git a/js/testapps/cat-eval/package.json b/js/testapps/cat-eval/package.json
index 3d2487e6f..788feefb5 100644
--- a/js/testapps/cat-eval/package.json
+++ b/js/testapps/cat-eval/package.json
@@ -7,7 +7,7 @@
"start": "node lib/index.js",
"compile": "tsc",
"build": "pnpm build:clean && pnpm compile",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build:watch": "tsc --watch"
},
"keywords": [],
@@ -25,7 +25,7 @@
"@genkit-ai/vertexai": "workspace:*",
"@google-cloud/firestore": "^7.9.0",
"@opentelemetry/sdk-trace-base": "^1.22.0",
- "firebase-admin": "^12.3.0",
+ "firebase-admin": ">=12.2",
"genkitx-pinecone": "workspace:*",
"llm-chunk": "^0.0.1",
"pdf-parse": "^1.1.1",
@@ -35,6 +35,7 @@
},
"devDependencies": {
"@types/pdf-parse": "^1.1.4",
- "typescript": "^5.3.3"
+ "typescript": "^5.3.3",
+ "rimraf": "^6.0.1"
}
}
diff --git a/js/testapps/dev-ui-gallery/package.json b/js/testapps/dev-ui-gallery/package.json
index dd663d07b..43ad7f34c 100644
--- a/js/testapps/dev-ui-gallery/package.json
+++ b/js/testapps/dev-ui-gallery/package.json
@@ -7,7 +7,7 @@
"start": "node lib/index.js",
"compile": "tsc",
"build": "pnpm build:clean && pnpm compile",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build:watch": "tsc --watch",
"build-and-run": "pnpm build && node lib/index.js"
},
@@ -15,7 +15,8 @@
"author": "Google, LLC",
"license": "ISC",
"devDependencies": {
- "typescript": "^5.3.3"
+ "typescript": "^5.3.3",
+ "rimraf": "^6.0.1"
},
"dependencies": {
"@genkit-ai/ai": "workspace:*",
@@ -27,7 +28,7 @@
"@genkit-ai/flow": "workspace:*",
"@genkit-ai/googleai": "workspace:*",
"@genkit-ai/vertexai": "workspace:*",
- "firebase-admin": "^12.1.0",
+ "firebase-admin": ">=12.2",
"genkitx-chromadb": "workspace:*",
"genkitx-ollama": "workspace:*",
"genkitx-pinecone": "workspace:*",
diff --git a/js/testapps/docs-menu-basic/package.json b/js/testapps/docs-menu-basic/package.json
index a41df0bc3..6d2c3db43 100644
--- a/js/testapps/docs-menu-basic/package.json
+++ b/js/testapps/docs-menu-basic/package.json
@@ -4,7 +4,7 @@
"start": "node lib/index.js",
"compile": "tsc",
"build": "npm run build:clean && npm run compile",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build:watch": "tsc --watch",
"test": "echo \"Error: no test specified\" && exit 1"
},
@@ -20,10 +20,11 @@
"@genkit-ai/firebase": "workspace:*",
"@genkit-ai/flow": "workspace:*",
"@genkit-ai/googleai": "workspace:*",
- "express": "^4.19.2",
+ "express": "^4.21.0",
"zod": "^3.22.4"
},
"devDependencies": {
- "typescript": "^5.3.3"
+ "typescript": "^5.3.3",
+ "rimraf": "^6.0.1"
}
}
diff --git a/js/testapps/docs-menu-rag/package.json b/js/testapps/docs-menu-rag/package.json
index f3454876c..0e31f1a07 100644
--- a/js/testapps/docs-menu-rag/package.json
+++ b/js/testapps/docs-menu-rag/package.json
@@ -4,7 +4,7 @@
"start": "node lib/index.js",
"compile": "tsc",
"build": "pnpm build:clean && pnpm compile",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build:watch": "tsc --watch",
"build-and-run": "pnpm build && node lib/index.js"
},
@@ -27,6 +27,7 @@
},
"devDependencies": {
"@types/pdf-parse": "^1.1.4",
- "typescript": "^5.3.3"
+ "typescript": "^5.3.3",
+ "rimraf": "^6.0.1"
}
}
diff --git a/js/testapps/eval/package.json b/js/testapps/eval/package.json
index 0d42e5b11..0ae05b5a6 100644
--- a/js/testapps/eval/package.json
+++ b/js/testapps/eval/package.json
@@ -7,7 +7,7 @@
"start": "node lib/index.js",
"compile": "tsc",
"build": "pnpm build:clean && pnpm compile",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build:watch": "tsc --watch",
"build-and-run": "pnpm build && node lib/index.js"
},
@@ -24,6 +24,7 @@
"zod": "^3.22.4"
},
"devDependencies": {
- "typescript": "^5.3.3"
+ "typescript": "^5.3.3",
+ "rimraf": "^6.0.1"
}
}
diff --git a/js/testapps/evaluator-gut-check/package.json b/js/testapps/evaluator-gut-check/package.json
index 3023e1aa9..788adf0af 100644
--- a/js/testapps/evaluator-gut-check/package.json
+++ b/js/testapps/evaluator-gut-check/package.json
@@ -7,7 +7,7 @@
"start": "node lib/index.js",
"compile": "tsc",
"build": "pnpm build:clean && pnpm compile",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build:watch": "tsc --watch"
},
"keywords": [],
@@ -25,6 +25,7 @@
"zod": "^3.22.4"
},
"devDependencies": {
- "typescript": "^5.3.3"
+ "typescript": "^5.3.3",
+ "rimraf": "^6.0.1"
}
}
diff --git a/js/testapps/express/package.json b/js/testapps/express/package.json
index 1c697b809..3eb19a1ca 100644
--- a/js/testapps/express/package.json
+++ b/js/testapps/express/package.json
@@ -7,7 +7,7 @@
"start": "node lib/index.js",
"compile": "tsc",
"build": "pnpm build:clean && pnpm compile",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build:watch": "tsc --watch",
"build-and-run": "pnpm build && node lib/index.js"
},
@@ -22,11 +22,12 @@
"@genkit-ai/googleai": "workspace:*",
"genkitx-ollama": "workspace:*",
"@genkit-ai/vertexai": "workspace:*",
- "express": "~4.19.2",
+ "express": "~4.20.0",
"zod": "^3.22.4"
},
"devDependencies": {
"@types/express": "^4.17.21",
- "typescript": "^5.3.3"
+ "typescript": "^5.3.3",
+ "rimraf": "^6.0.1"
}
}
diff --git a/js/testapps/firebase-functions-sample1/functions/package.json b/js/testapps/firebase-functions-sample1/functions/package.json
index 0f230e14d..d525b2b8b 100644
--- a/js/testapps/firebase-functions-sample1/functions/package.json
+++ b/js/testapps/firebase-functions-sample1/functions/package.json
@@ -19,8 +19,8 @@
"@genkit-ai/firebase": "*",
"@genkit-ai/flow": "*",
"@genkit-ai/vertexai": "*",
- "firebase-admin": "^11.8.0",
- "firebase-functions": "^4.8.0 || ^5.0.0",
+ "firebase-admin": ">=12.2",
+ "firebase-functions": ">=4.8",
"zod": "^3.22.4"
},
"devDependencies": {
diff --git a/js/testapps/flow-sample1/package.json b/js/testapps/flow-sample1/package.json
index 826337ed7..e9badd501 100644
--- a/js/testapps/flow-sample1/package.json
+++ b/js/testapps/flow-sample1/package.json
@@ -7,7 +7,7 @@
"start": "node lib/index.js",
"compile": "tsc",
"build": "pnpm build:clean && pnpm compile",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build:watch": "tsc --watch",
"build-and-run": "pnpm build && node lib/index.js"
},
@@ -21,6 +21,7 @@
"zod": "^3.22.4"
},
"devDependencies": {
- "typescript": "^5.3.3"
+ "typescript": "^5.3.3",
+ "rimraf": "^6.0.1"
}
}
diff --git a/js/testapps/flow-simple-ai/package.json b/js/testapps/flow-simple-ai/package.json
index 308422550..6d37f0807 100644
--- a/js/testapps/flow-simple-ai/package.json
+++ b/js/testapps/flow-simple-ai/package.json
@@ -7,7 +7,7 @@
"start": "node lib/index.js",
"compile": "tsc",
"build": "pnpm build:clean && pnpm compile",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build:watch": "tsc --watch",
"build-and-run": "pnpm build && node lib/index.js"
},
@@ -25,11 +25,12 @@
"@genkit-ai/vertexai": "workspace:*",
"@google/generative-ai": "^0.15.0",
"@opentelemetry/sdk-trace-base": "^1.25.0",
- "firebase-admin": "^12.1.0",
+ "firebase-admin": ">=12.2",
"partial-json": "^0.1.7",
"zod": "^3.22.4"
},
"devDependencies": {
- "typescript": "^5.3.3"
+ "typescript": "^5.3.3",
+ "rimraf": "^6.0.1"
}
}
diff --git a/js/testapps/google-ai-code-execution/package.json b/js/testapps/google-ai-code-execution/package.json
index d1b4f727b..8baf92d15 100644
--- a/js/testapps/google-ai-code-execution/package.json
+++ b/js/testapps/google-ai-code-execution/package.json
@@ -20,7 +20,7 @@
"@genkit-ai/google-cloud": "workspace:*",
"@genkit-ai/googleai": "workspace:*",
"dotenv": "^16.4.5",
- "express": "^4.19.2",
+ "express": "^4.21.0",
"zod": "3.22.4"
},
"devDependencies": {
diff --git a/js/testapps/langchain/package.json b/js/testapps/langchain/package.json
index 84dc97365..07c807fba 100644
--- a/js/testapps/langchain/package.json
+++ b/js/testapps/langchain/package.json
@@ -7,7 +7,7 @@
"start": "node lib/index.js",
"compile": "tsc",
"build": "pnpm build:clean && pnpm compile",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build:watch": "tsc --watch",
"build-and-run": "pnpm build && node lib/index.js"
},
@@ -23,16 +23,17 @@
"genkitx-ollama": "workspace:*",
"@genkit-ai/vertexai": "workspace:*",
"genkitx-langchain": "workspace:*",
- "@langchain/community": "^0.0.53",
+ "@langchain/community": "^0.3.3",
"@langchain/core": "^0.1.61",
"@opentelemetry/api": "^1.9.0",
- "express": "~4.19.2",
- "langchain": "^0.1.36",
+ "express": "~4.20.0",
+ "langchain": "^0.2.19",
"pdf-parse": "^1.1.1",
"zod": "^3.22.4"
},
"devDependencies": {
"@types/express": "^4.17.21",
- "typescript": "^5.3.3"
+ "typescript": "^5.3.3",
+ "rimraf": "^6.0.1"
}
}
diff --git a/js/testapps/llm-human-in-the-loop/package.json b/js/testapps/llm-human-in-the-loop/package.json
index 41bc652e2..fe4656178 100644
--- a/js/testapps/llm-human-in-the-loop/package.json
+++ b/js/testapps/llm-human-in-the-loop/package.json
@@ -7,7 +7,7 @@
"start": "node lib/index.js",
"compile": "tsc",
"build": "pnpm build:clean && pnpm compile",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build:watch": "tsc --watch",
"build-and-run": "pnpm build && node lib/index.js"
},
@@ -23,6 +23,7 @@
"zod": "^3.22.4"
},
"devDependencies": {
- "typescript": "^5.3.3"
+ "typescript": "^5.3.3",
+ "rimraf": "^6.0.1"
}
}
diff --git a/js/testapps/menu/package.json b/js/testapps/menu/package.json
index 9a4f3c258..3095de56d 100644
--- a/js/testapps/menu/package.json
+++ b/js/testapps/menu/package.json
@@ -7,7 +7,7 @@
"start": "node lib/index.js",
"compile": "tsc",
"build": "pnpm build:clean && pnpm compile",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build:watch": "tsc --watch",
"build-and-run": "pnpm build && node lib/index.js"
},
@@ -26,7 +26,8 @@
"zod": "^3.22.4"
},
"devDependencies": {
- "typescript": "^5.3.3"
+ "typescript": "^5.3.3",
+ "rimraf": "^6.0.1"
},
"type": "module"
}
diff --git a/js/testapps/vertexai-vector-search-bigquery/package.json b/js/testapps/vertexai-vector-search-bigquery/package.json
index 8fe03522b..46167568e 100644
--- a/js/testapps/vertexai-vector-search-bigquery/package.json
+++ b/js/testapps/vertexai-vector-search-bigquery/package.json
@@ -7,7 +7,7 @@
"start": "node lib/index.js",
"compile": "tsc",
"build": "pnpm build:clean && pnpm compile",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build:watch": "tsc --watch"
},
"keywords": [],
@@ -25,7 +25,7 @@
"@genkit-ai/vertexai": "workspace:*",
"@google-cloud/bigquery": "^7.8.0",
"dotenv": "^16.4.5",
- "express": "^4.19.2",
+ "express": "^4.21.0",
"genkitx-chromadb": "workspace:*",
"genkitx-langchain": "workspace:*",
"genkitx-pinecone": "workspace:*",
@@ -33,6 +33,7 @@
"zod": "3.22.4"
},
"devDependencies": {
- "typescript": "^5.5.2"
+ "typescript": "^5.5.2",
+ "rimraf": "^6.0.1"
}
}
diff --git a/js/testapps/vertexai-vector-search-custom/package.json b/js/testapps/vertexai-vector-search-custom/package.json
index 8fe03522b..46167568e 100644
--- a/js/testapps/vertexai-vector-search-custom/package.json
+++ b/js/testapps/vertexai-vector-search-custom/package.json
@@ -7,7 +7,7 @@
"start": "node lib/index.js",
"compile": "tsc",
"build": "pnpm build:clean && pnpm compile",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build:watch": "tsc --watch"
},
"keywords": [],
@@ -25,7 +25,7 @@
"@genkit-ai/vertexai": "workspace:*",
"@google-cloud/bigquery": "^7.8.0",
"dotenv": "^16.4.5",
- "express": "^4.19.2",
+ "express": "^4.21.0",
"genkitx-chromadb": "workspace:*",
"genkitx-langchain": "workspace:*",
"genkitx-pinecone": "workspace:*",
@@ -33,6 +33,7 @@
"zod": "3.22.4"
},
"devDependencies": {
- "typescript": "^5.5.2"
+ "typescript": "^5.5.2",
+ "rimraf": "^6.0.1"
}
}
diff --git a/js/testapps/vertexai-vector-search-firestore/package.json b/js/testapps/vertexai-vector-search-firestore/package.json
index 6717381d5..b990a26db 100644
--- a/js/testapps/vertexai-vector-search-firestore/package.json
+++ b/js/testapps/vertexai-vector-search-firestore/package.json
@@ -7,7 +7,7 @@
"start": "node lib/index.js",
"compile": "tsc",
"build": "pnpm build:clean && pnpm compile",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build:watch": "tsc --watch"
},
"keywords": [],
@@ -24,8 +24,8 @@
"@genkit-ai/googleai": "workspace:*",
"@genkit-ai/vertexai": "workspace:*",
"dotenv": "^16.4.5",
- "express": "^4.19.2",
- "firebase-admin": "^12.1.0",
+ "express": "^4.21.0",
+ "firebase-admin": ">=12.2",
"genkitx-chromadb": "workspace:*",
"genkitx-langchain": "workspace:*",
"genkitx-pinecone": "workspace:*",
@@ -33,6 +33,7 @@
"zod": "3.22.4"
},
"devDependencies": {
- "typescript": "^5.5.2"
+ "typescript": "^5.5.2",
+ "rimraf": "^6.0.1"
}
}
diff --git a/package.json b/package.json
index 3188a910a..91cb4e0b3 100644
--- a/package.json
+++ b/package.json
@@ -13,7 +13,7 @@
"link-genkit-cli": "cd genkit-tools/cli && npm link",
"pnpm-install-js": "cd js && pnpm i",
"pnpm-install-genkit-tools": "cd genkit-tools && pnpm i",
- "pack:all": "rm -r dist || true && mkdir dist && pnpm run pack:tools && pnpm run pack:js && pnpm dist:zip",
+ "pack:all": "rimraf dist || true && mkdir dist && pnpm run pack:tools && pnpm run pack:js && pnpm dist:zip",
"pack:tools": "cd genkit-tools && pnpm pack:all",
"pack:js": "cd js && pnpm pack:all",
"dist:zip": "cd dist && zip genkit-dist.zip *.tgz",
@@ -37,7 +37,8 @@
"prettier-plugin-css-order": "2.0.1",
"prettier-plugin-organize-imports": "^3.2.4",
"ts-node": "^10.9.2",
- "tsx": "^4.7.1"
+ "tsx": "^4.7.1",
+ "rimraf": "^6.0.1"
},
- "packageManager": "pnpm@9.10.0+sha256.355a8ab8dbb6ad41befbef39bc4fd6b5df85e12761d2724bd01f13e878de4b13"
+ "packageManager": "pnpm@9.12.0+sha256.a61b67ff6cc97af864564f4442556c22a04f2e5a7714fbee76a1011361d9b726"
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 8c98aea4f..d0fcea468 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -29,6 +29,9 @@ importers:
prettier-plugin-organize-imports:
specifier: ^3.2.4
version: 3.2.4(prettier@3.2.5)(typescript@5.4.5)
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
ts-node:
specifier: ^10.9.2
version: 10.9.2(@types/node@20.12.11)(typescript@5.4.5)
@@ -180,6 +183,10 @@ packages:
cpu: [x64]
os: [win32]
+ '@isaacs/cliui@8.0.2':
+ resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
+ engines: {node: '>=12'}
+
'@jridgewell/resolve-uri@3.1.2':
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: '>=6.0.0'}
@@ -222,6 +229,10 @@ packages:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: '>=8'}
+ ansi-regex@6.1.0:
+ resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
+ engines: {node: '>=12'}
+
ansi-styles@3.2.1:
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
engines: {node: '>=4'}
@@ -230,6 +241,10 @@ packages:
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
engines: {node: '>=8'}
+ ansi-styles@6.2.1:
+ resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+ engines: {node: '>=12'}
+
arg@4.1.3:
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
@@ -257,6 +272,9 @@ packages:
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ brace-expansion@2.0.1:
+ resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+
buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
@@ -327,6 +345,10 @@ packages:
resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==}
engines: {node: '>=4.8'}
+ cross-spawn@7.0.3:
+ resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
+ engines: {node: '>= 8'}
+
css-declaration-sorter@7.2.0:
resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==}
engines: {node: ^14 || ^16 || >=18}
@@ -360,9 +382,15 @@ packages:
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
engines: {node: '>=0.3.1'}
+ eastasianwidth@0.2.0:
+ resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+ emoji-regex@9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+
error-ex@1.3.2:
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
@@ -410,6 +438,10 @@ packages:
for-each@0.3.3:
resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
+ foreground-child@3.3.0:
+ resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
+ engines: {node: '>=14'}
+
fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
@@ -436,6 +468,11 @@ packages:
get-tsconfig@4.7.5:
resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==}
+ glob@11.0.0:
+ resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==}
+ engines: {node: 20 || >=22}
+ hasBin: true
+
globalthis@1.0.4:
resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
engines: {node: '>= 0.4'}
@@ -578,6 +615,10 @@ packages:
isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+ jackspeak@4.0.2:
+ resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==}
+ engines: {node: 20 || >=22}
+
json-parse-better-errors@1.0.2:
resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
@@ -592,6 +633,10 @@ packages:
resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
engines: {node: '>=10'}
+ lru-cache@11.0.1:
+ resolution: {integrity: sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==}
+ engines: {node: 20 || >=22}
+
lru-cache@4.1.5:
resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
@@ -606,9 +651,17 @@ packages:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
engines: {node: '>=6'}
+ minimatch@10.0.1:
+ resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==}
+ engines: {node: 20 || >=22}
+
minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ minipass@7.1.2:
+ resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
mute-stream@0.0.8:
resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
@@ -659,6 +712,9 @@ packages:
resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
engines: {node: '>=0.10.0'}
+ package-json-from-dist@1.0.1:
+ resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
+
parse-json@4.0.0:
resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==}
engines: {node: '>=4'}
@@ -667,9 +723,17 @@ packages:
resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==}
engines: {node: '>=4'}
+ path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+
path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+ path-scurry@2.0.0:
+ resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==}
+ engines: {node: 20 || >=22}
+
path-type@3.0.0:
resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==}
engines: {node: '>=4'}
@@ -765,6 +829,11 @@ packages:
resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
engines: {node: '>=8'}
+ rimraf@6.0.1:
+ resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==}
+ engines: {node: 20 || >=22}
+ hasBin: true
+
run-async@2.4.1:
resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
engines: {node: '>=0.12.0'}
@@ -805,10 +874,18 @@ packages:
resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
engines: {node: '>=0.10.0'}
+ shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+
shebang-regex@1.0.0:
resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==}
engines: {node: '>=0.10.0'}
+ shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+
shell-quote@1.8.1:
resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
@@ -819,6 +896,10 @@ packages:
signal-exit@3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+ signal-exit@4.1.0:
+ resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+ engines: {node: '>=14'}
+
source-map-js@1.2.0:
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
engines: {node: '>=0.10.0'}
@@ -842,6 +923,10 @@ packages:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
+ string-width@5.1.2:
+ resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+ engines: {node: '>=12'}
+
string.prototype.padend@3.1.6:
resolution: {integrity: sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==}
engines: {node: '>= 0.4'}
@@ -867,6 +952,10 @@ packages:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
+ strip-ansi@7.1.0:
+ resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
+ engines: {node: '>=12'}
+
strip-bom@3.0.0:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
@@ -977,10 +1066,23 @@ packages:
resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
hasBin: true
+ which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+
wrap-ansi@6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
+ wrap-ansi@7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+
+ wrap-ansi@8.1.0:
+ resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
+ engines: {node: '>=12'}
+
yallist@2.1.2:
resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==}
@@ -1063,6 +1165,15 @@ snapshots:
'@esbuild/win32-x64@0.21.5':
optional: true
+ '@isaacs/cliui@8.0.2':
+ dependencies:
+ string-width: 5.1.2
+ string-width-cjs: string-width@4.2.3
+ strip-ansi: 7.1.0
+ strip-ansi-cjs: strip-ansi@6.0.1
+ wrap-ansi: 8.1.0
+ wrap-ansi-cjs: wrap-ansi@7.0.0
+
'@jridgewell/resolve-uri@3.1.2': {}
'@jridgewell/sourcemap-codec@1.4.15': {}
@@ -1094,6 +1205,8 @@ snapshots:
ansi-regex@5.0.1: {}
+ ansi-regex@6.1.0: {}
+
ansi-styles@3.2.1:
dependencies:
color-convert: 1.9.3
@@ -1102,6 +1215,8 @@ snapshots:
dependencies:
color-convert: 2.0.1
+ ansi-styles@6.2.1: {}
+
arg@4.1.3: {}
array-buffer-byte-length@1.0.1:
@@ -1139,6 +1254,10 @@ snapshots:
balanced-match: 1.0.2
concat-map: 0.0.1
+ brace-expansion@2.0.1:
+ dependencies:
+ balanced-match: 1.0.2
+
buffer-from@1.1.2: {}
buffer@5.7.1:
@@ -1216,6 +1335,12 @@ snapshots:
shebang-command: 1.2.0
which: 1.3.1
+ cross-spawn@7.0.3:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
css-declaration-sorter@7.2.0(postcss@8.4.38):
dependencies:
postcss: 8.4.38
@@ -1256,8 +1381,12 @@ snapshots:
diff@4.0.2: {}
+ eastasianwidth@0.2.0: {}
+
emoji-regex@8.0.0: {}
+ emoji-regex@9.2.2: {}
+
error-ex@1.3.2:
dependencies:
is-arrayish: 0.2.1
@@ -1375,6 +1504,11 @@ snapshots:
dependencies:
is-callable: 1.2.7
+ foreground-child@3.3.0:
+ dependencies:
+ cross-spawn: 7.0.3
+ signal-exit: 4.1.0
+
fsevents@2.3.3:
optional: true
@@ -1407,6 +1541,15 @@ snapshots:
dependencies:
resolve-pkg-maps: 1.0.0
+ glob@11.0.0:
+ dependencies:
+ foreground-child: 3.3.0
+ jackspeak: 4.0.2
+ minimatch: 10.0.1
+ minipass: 7.1.2
+ package-json-from-dist: 1.0.1
+ path-scurry: 2.0.0
+
globalthis@1.0.4:
dependencies:
define-properties: 1.2.1
@@ -1547,6 +1690,10 @@ snapshots:
isexe@2.0.0: {}
+ jackspeak@4.0.2:
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+
json-parse-better-errors@1.0.2: {}
load-json-file@4.0.0:
@@ -1563,6 +1710,8 @@ snapshots:
chalk: 4.1.2
is-unicode-supported: 0.1.0
+ lru-cache@11.0.1: {}
+
lru-cache@4.1.5:
dependencies:
pseudomap: 1.0.2
@@ -1574,10 +1723,16 @@ snapshots:
mimic-fn@2.1.0: {}
+ minimatch@10.0.1:
+ dependencies:
+ brace-expansion: 2.0.1
+
minimatch@3.1.2:
dependencies:
brace-expansion: 1.1.11
+ minipass@7.1.2: {}
+
mute-stream@0.0.8: {}
nanoid@3.3.7: {}
@@ -1638,6 +1793,8 @@ snapshots:
os-tmpdir@1.0.2: {}
+ package-json-from-dist@1.0.1: {}
+
parse-json@4.0.0:
dependencies:
error-ex: 1.3.2
@@ -1645,8 +1802,15 @@ snapshots:
path-key@2.0.1: {}
+ path-key@3.1.1: {}
+
path-parse@1.0.7: {}
+ path-scurry@2.0.0:
+ dependencies:
+ lru-cache: 11.0.1
+ minipass: 7.1.2
+
path-type@3.0.0:
dependencies:
pify: 3.0.0
@@ -1741,6 +1905,11 @@ snapshots:
onetime: 5.1.2
signal-exit: 3.0.7
+ rimraf@6.0.1:
+ dependencies:
+ glob: 11.0.0
+ package-json-from-dist: 1.0.1
+
run-async@2.4.1: {}
rxjs@7.8.1:
@@ -1788,8 +1957,14 @@ snapshots:
dependencies:
shebang-regex: 1.0.0
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
shebang-regex@1.0.0: {}
+ shebang-regex@3.0.0: {}
+
shell-quote@1.8.1: {}
side-channel@1.0.6:
@@ -1801,6 +1976,8 @@ snapshots:
signal-exit@3.0.7: {}
+ signal-exit@4.1.0: {}
+
source-map-js@1.2.0: {}
spawn-sync@1.0.15:
@@ -1828,6 +2005,12 @@ snapshots:
is-fullwidth-code-point: 3.0.0
strip-ansi: 6.0.1
+ string-width@5.1.2:
+ dependencies:
+ eastasianwidth: 0.2.0
+ emoji-regex: 9.2.2
+ strip-ansi: 7.1.0
+
string.prototype.padend@3.1.6:
dependencies:
call-bind: 1.0.7
@@ -1866,6 +2049,10 @@ snapshots:
dependencies:
ansi-regex: 5.0.1
+ strip-ansi@7.1.0:
+ dependencies:
+ ansi-regex: 6.1.0
+
strip-bom@3.0.0: {}
supports-color@5.5.0:
@@ -1997,12 +2184,28 @@ snapshots:
dependencies:
isexe: 2.0.0
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
+
wrap-ansi@6.2.0:
dependencies:
ansi-styles: 4.3.0
string-width: 4.2.3
strip-ansi: 6.0.1
+ wrap-ansi@7.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ wrap-ansi@8.1.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ string-width: 5.1.2
+ strip-ansi: 7.1.0
+
yallist@2.1.2: {}
yn@3.1.1: {}
diff --git a/samples/chatbot/server/package.json b/samples/chatbot/server/package.json
index ce17919ce..fe668e8d5 100644
--- a/samples/chatbot/server/package.json
+++ b/samples/chatbot/server/package.json
@@ -18,7 +18,7 @@
"@genkit-ai/dotprompt": "^0.5.8",
"@genkit-ai/flow": "^0.5.8",
"@genkit-ai/vertexai": "^0.5.8",
- "express": "^4.19.2",
+ "express": "^4.21.0",
"partial-json": "^0.1.7",
"zod": "^3.23.8"
},
diff --git a/samples/js-angular/server/package.json b/samples/js-angular/server/package.json
index 855136c3d..ec9fa50d2 100644
--- a/samples/js-angular/server/package.json
+++ b/samples/js-angular/server/package.json
@@ -18,7 +18,7 @@
"@genkit-ai/dotprompt": "^0.5.2",
"@genkit-ai/flow": "^0.5.2",
"@genkit-ai/vertexai": "^0.5.2",
- "express": "^4.19.2",
+ "express": "^4.21.0",
"partial-json": "^0.1.7",
"zod": "^3.23.8"
},
diff --git a/samples/js-coffee-shop/package.json b/samples/js-coffee-shop/package.json
index 608ba9003..bf7ac1a5b 100644
--- a/samples/js-coffee-shop/package.json
+++ b/samples/js-coffee-shop/package.json
@@ -7,7 +7,7 @@
"start": "node lib/index.js",
"compile": "tsc",
"build": "npm run build:clean && npm run compile",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build:watch": "tsc --watch",
"build-and-run": "npm run build && node lib/index.js"
},
@@ -31,6 +31,7 @@
},
"devDependencies": {
"genkit": "^0.5.0",
- "typescript": "^5.3.3"
+ "typescript": "^5.3.3",
+ "rimraf": "^6.0.1"
}
}
diff --git a/samples/js-menu/package.json b/samples/js-menu/package.json
index f7f11c3d2..0f79b1468 100644
--- a/samples/js-menu/package.json
+++ b/samples/js-menu/package.json
@@ -7,7 +7,7 @@
"start": "node lib/index.js",
"compile": "tsc",
"build": "npm run build:clean && npm run compile",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build:watch": "tsc --watch",
"build-and-run": "npm run build && node lib/index.js"
},
@@ -27,6 +27,7 @@
},
"devDependencies": {
"genkit": "^0.5.0",
- "typescript": "^5.3.3"
+ "typescript": "^5.3.3",
+ "rimraf": "^6.0.1"
}
}
diff --git a/samples/prompts/package.json b/samples/prompts/package.json
index e202253db..30a11802c 100644
--- a/samples/prompts/package.json
+++ b/samples/prompts/package.json
@@ -18,7 +18,7 @@
"@genkit-ai/dotprompt": "^0.5.10",
"@genkit-ai/flow": "^0.5.10",
"@genkit-ai/googleai": "^0.5.10",
- "express": "^4.19.2",
+ "express": "^4.21.0",
"zod": "^3.23.8"
},
"devDependencies": {
diff --git a/scripts/release_main.sh b/scripts/release_main.sh
new file mode 100755
index 000000000..2ced9fc5e
--- /dev/null
+++ b/scripts/release_main.sh
@@ -0,0 +1,79 @@
+#!/bin/bash
+
+# git clone git@github.com:firebase/genkit.git
+# cd genkit
+# pnpm i
+# pnpm build
+# pnpm test:all
+
+# Run from root: scripts/release_main.sh
+
+pnpm login --registry https://wombat-dressing-room.appspot.com
+
+
+CURRENT=`pwd`
+
+cd genkit-tools/common
+pnpm publish --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd genkit-tools/cli
+pnpm publish --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/core
+pnpm publish --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/ai
+pnpm publish --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/flow
+pnpm publish --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/dotprompt
+pnpm publish --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/chroma
+pnpm publish --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/dev-local-vectorstore
+pnpm publish --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/firebase
+pnpm publish --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/google-cloud
+pnpm publish --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/googleai
+pnpm publish --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/ollama
+pnpm publish --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/pinecone
+pnpm publish --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/vertexai
+pnpm publish --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/evaluators
+pnpm publish --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/langchain
+pnpm publish --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
diff --git a/scripts/release_next.sh b/scripts/release_next.sh
new file mode 100755
index 000000000..3e62e982b
--- /dev/null
+++ b/scripts/release_next.sh
@@ -0,0 +1,83 @@
+#!/bin/bash
+
+# git clone git@github.com:firebase/genkit.git
+# cd genkit
+# git checkout next
+# pnpm i
+# pnpm build
+# pnpm test:all
+
+# Run from root: scripts/release_next.sh
+
+pnpm login --registry https://wombat-dressing-room.appspot.com
+
+CURRENT=`pwd`
+
+cd genkit-tools/cli
+pnpm publish --tag next --publish-branch next --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd genkit-tools/common
+pnpm publish --tag next --publish-branch next --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd genkit-tools/telemetry-server
+pnpm publish --tag next --publish-branch next --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/core
+pnpm publish --tag next --publish-branch next --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/ai
+pnpm publish --tag next --publish-branch next --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/genkit
+pnpm publish --tag next --publish-branch next --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/dotprompt
+pnpm publish --tag next --publish-branch next --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/chroma
+pnpm publish --tag next --publish-branch next --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/dev-local-vectorstore
+pnpm publish --tag next --publish-branch next --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/firebase
+pnpm publish --tag next --publish-branch next --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/google-cloud
+pnpm publish --tag next --publish-branch next --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/googleai
+pnpm publish --tag next --publish-branch next --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/ollama
+pnpm publish --tag next --publish-branch next --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/pinecone
+pnpm publish --tag next --publish-branch next --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/vertexai
+pnpm publish --tag next --publish-branch next --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/evaluators
+pnpm publish --tag next --publish-branch next --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
+cd js/plugins/langchain
+pnpm publish --tag next --publish-branch next --registry https://wombat-dressing-room.appspot.com
+cd $CURRENT
+
diff --git a/tests/test_js_app/package.json b/tests/test_js_app/package.json
index b0066e487..8c97f13de 100644
--- a/tests/test_js_app/package.json
+++ b/tests/test_js_app/package.json
@@ -7,7 +7,7 @@
"start": "node lib/index.js",
"compile": "tsc",
"build": "pnpm build:clean && pnpm compile",
- "build:clean": "rm -rf ./lib",
+ "build:clean": "rimraf ./lib",
"build:watch": "tsc --watch",
"build-and-run": "pnpm build && node lib/index.js"
},
@@ -18,6 +18,7 @@
"zod": "^3.22.4"
},
"devDependencies": {
- "typescript": "^5.3.3"
+ "typescript": "^5.3.3",
+ "rimraf": "^6.0.1"
}
}