V1 with working cmdline interface for easy of using GIT
This commit is contained in:
+202
@@ -0,0 +1,202 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
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.
|
||||
+315
@@ -0,0 +1,315 @@
|
||||
# Google Gen AI SDK for TypeScript and JavaScript
|
||||
|
||||
[](https://www.npmjs.com/package/@google/genai)
|
||||
[](https://www.npmjs.com/package/@google/genai)
|
||||
|
||||
----------------------
|
||||
**Documentation:** https://googleapis.github.io/js-genai/
|
||||
|
||||
----------------------
|
||||
|
||||
The Google Gen AI JavaScript SDK is designed for
|
||||
TypeScript and JavaScript developers to build applications powered by Gemini. The SDK
|
||||
supports both the [Gemini Developer API](https://ai.google.dev/gemini-api/docs)
|
||||
and [Vertex AI](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/overview).
|
||||
|
||||
The Google Gen AI SDK is designed to work with Gemini 2.0 features.
|
||||
|
||||
> [!CAUTION]
|
||||
> **API Key Security:** Avoid exposing API keys in client-side code.
|
||||
> Use server-side implementations in production environments.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
1. Node.js version 20 or later
|
||||
|
||||
### The following are required for Vertex AI users (excluding Vertex AI Studio)
|
||||
1. [Select](https://console.cloud.google.com/project) or [create](https://cloud.google.com/resource-manager/docs/creating-managing-projects#creating_a_project) a Google Cloud project.
|
||||
1. [Enable billing for your project](https://cloud.google.com/billing/docs/how-to/modify-project).
|
||||
1. [Enable the Vertex AI API](https://console.cloud.google.com/flows/enableapi?apiid=aiplatform.googleapis.com).
|
||||
1. [Configure authentication](https://cloud.google.com/docs/authentication) for your project.
|
||||
* [Install the gcloud CLI](https://cloud.google.com/sdk/docs/install).
|
||||
* [Initialize the gcloud CLI](https://cloud.google.com/sdk/docs/initializing).
|
||||
* Create local authentication credentials for your user account:
|
||||
|
||||
```sh
|
||||
gcloud auth application-default login
|
||||
```
|
||||
A list of accepted authentication options are listed in [GoogleAuthOptions](https://github.com/googleapis/google-auth-library-nodejs/blob/3ae120d0a45c95e36c59c9ac8286483938781f30/src/auth/googleauth.ts#L87) interface of google-auth-library-node.js GitHub repo.
|
||||
|
||||
## Installation
|
||||
|
||||
To install the SDK, run the following command:
|
||||
|
||||
```shell
|
||||
npm install @google/genai
|
||||
```
|
||||
|
||||
## Quickstart
|
||||
|
||||
The simplest way to get started is to use an API key from
|
||||
[Google AI Studio](https://aistudio.google.com/apikey):
|
||||
|
||||
```typescript
|
||||
import {GoogleGenAI} from '@google/genai';
|
||||
const GEMINI_API_KEY = process.env.GEMINI_API_KEY;
|
||||
|
||||
const ai = new GoogleGenAI({apiKey: GEMINI_API_KEY});
|
||||
|
||||
async function main() {
|
||||
const response = await ai.models.generateContent({
|
||||
model: 'gemini-2.0-flash-001',
|
||||
contents: 'Why is the sky blue?',
|
||||
});
|
||||
console.log(response.text);
|
||||
}
|
||||
|
||||
main();
|
||||
```
|
||||
|
||||
## Initialization
|
||||
|
||||
The Google Gen AI SDK provides support for both the
|
||||
[Google AI Studio](https://ai.google.dev/gemini-api/docs) and
|
||||
[Vertex AI](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/overview)
|
||||
implementations of the Gemini API.
|
||||
|
||||
### Gemini Developer API
|
||||
|
||||
For server-side applications, initialize using an API key, which can
|
||||
be acquired from [Google AI Studio](https://aistudio.google.com/apikey):
|
||||
|
||||
```typescript
|
||||
import { GoogleGenAI } from '@google/genai';
|
||||
const ai = new GoogleGenAI({apiKey: 'GEMINI_API_KEY'});
|
||||
```
|
||||
|
||||
#### Browser
|
||||
|
||||
> [!CAUTION]
|
||||
> **API Key Security:** Avoid exposing API keys in client-side code.
|
||||
> Use server-side implementations in production environments.
|
||||
|
||||
In the browser the initialization code is identical:
|
||||
|
||||
|
||||
```typescript
|
||||
import { GoogleGenAI } from '@google/genai';
|
||||
const ai = new GoogleGenAI({apiKey: 'GEMINI_API_KEY'});
|
||||
```
|
||||
|
||||
### Vertex AI
|
||||
|
||||
Sample code for VertexAI initialization:
|
||||
|
||||
```typescript
|
||||
import { GoogleGenAI } from '@google/genai';
|
||||
|
||||
const ai = new GoogleGenAI({
|
||||
vertexai: true,
|
||||
project: 'your_project',
|
||||
location: 'your_location',
|
||||
});
|
||||
```
|
||||
|
||||
### (Optional) (NodeJS only) Using environment variables:
|
||||
|
||||
For NodeJS environments, you can create a client by configuring the necessary
|
||||
environment variables. Configuration setup instructions depends on whether
|
||||
you're using the Gemini Developer API or the Gemini API in Vertex AI.
|
||||
|
||||
**Gemini Developer API:** Set `GOOGLE_API_KEY` as shown below:
|
||||
|
||||
```bash
|
||||
export GOOGLE_API_KEY='your-api-key'
|
||||
```
|
||||
|
||||
**Gemini API on Vertex AI:** Set `GOOGLE_GENAI_USE_VERTEXAI`,
|
||||
`GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION`, as shown below:
|
||||
|
||||
```bash
|
||||
export GOOGLE_GENAI_USE_VERTEXAI=true
|
||||
export GOOGLE_CLOUD_PROJECT='your-project-id'
|
||||
export GOOGLE_CLOUD_LOCATION='us-central1'
|
||||
```
|
||||
|
||||
```typescript
|
||||
import {GoogleGenAI} from '@google/genai';
|
||||
|
||||
const ai = new GoogleGenAI();
|
||||
```
|
||||
|
||||
## API Selection
|
||||
|
||||
By default, the SDK uses the beta API endpoints provided by Google to support
|
||||
preview features in the APIs. The stable API endpoints can be selected by
|
||||
setting the API version to `v1`.
|
||||
|
||||
To set the API version use `apiVersion`. For example, to set the API version to
|
||||
`v1` for Vertex AI:
|
||||
|
||||
```typescript
|
||||
const ai = new GoogleGenAI({
|
||||
vertexai: true,
|
||||
project: 'your_project',
|
||||
location: 'your_location',
|
||||
apiVersion: 'v1'
|
||||
});
|
||||
```
|
||||
|
||||
To set the API version to `v1alpha` for the Gemini Developer API:
|
||||
|
||||
```typescript
|
||||
const ai = new GoogleGenAI({
|
||||
apiKey: 'GEMINI_API_KEY',
|
||||
apiVersion: 'v1alpha'
|
||||
});
|
||||
```
|
||||
|
||||
## GoogleGenAI overview
|
||||
|
||||
All API features are accessed through an instance of the `GoogleGenAI` classes.
|
||||
The submodules bundle together related API methods:
|
||||
|
||||
- [`ai.models`](https://googleapis.github.io/js-genai/release_docs/classes/models.Models.html):
|
||||
Use `models` to query models (`generateContent`, `generateImages`, ...), or
|
||||
examine their metadata.
|
||||
- [`ai.caches`](https://googleapis.github.io/js-genai/release_docs/classes/caches.Caches.html):
|
||||
Create and manage `caches` to reduce costs when repeatedly using the same
|
||||
large prompt prefix.
|
||||
- [`ai.chats`](https://googleapis.github.io/js-genai/release_docs/classes/chats.Chats.html):
|
||||
Create local stateful `chat` objects to simplify multi turn interactions.
|
||||
- [`ai.files`](https://googleapis.github.io/js-genai/release_docs/classes/files.Files.html):
|
||||
Upload `files` to the API and reference them in your prompts.
|
||||
This reduces bandwidth if you use a file many times, and handles files too
|
||||
large to fit inline with your prompt.
|
||||
- [`ai.live`](https://googleapis.github.io/js-genai/release_docs/classes/live.Live.html):
|
||||
Start a `live` session for real time interaction, allows text + audio + video
|
||||
input, and text or audio output.
|
||||
|
||||
## Samples
|
||||
|
||||
More samples can be found in the
|
||||
[github samples directory](https://github.com/googleapis/js-genai/tree/main/sdk-samples).
|
||||
|
||||
### Streaming
|
||||
|
||||
For quicker, more responsive API interactions use the `generateContentStream`
|
||||
method which yields chunks as they're generated:
|
||||
|
||||
```typescript
|
||||
import {GoogleGenAI} from '@google/genai';
|
||||
const GEMINI_API_KEY = process.env.GEMINI_API_KEY;
|
||||
|
||||
const ai = new GoogleGenAI({apiKey: GEMINI_API_KEY});
|
||||
|
||||
async function main() {
|
||||
const response = await ai.models.generateContentStream({
|
||||
model: 'gemini-2.0-flash-001',
|
||||
contents: 'Write a 100-word poem.',
|
||||
});
|
||||
for await (const chunk of response) {
|
||||
console.log(chunk.text);
|
||||
}
|
||||
}
|
||||
|
||||
main();
|
||||
```
|
||||
|
||||
### Function Calling
|
||||
|
||||
To let Gemini to interact with external systems, you can provide provide
|
||||
`functionDeclaration` objects as `tools`. To use these tools it's a 4 step
|
||||
|
||||
1. **Declare the function name, description, and parameters**
|
||||
2. **Call `generateContent` with function calling enabled**
|
||||
3. **Use the returned `FunctionCall` parameters to call your actual function**
|
||||
3. **Send the result back to the model (with history, easier in `ai.chat`)
|
||||
as a `FunctionResponse`**
|
||||
|
||||
```typescript
|
||||
import {GoogleGenAI, FunctionCallingConfigMode, FunctionDeclaration, Type} from '@google/genai';
|
||||
const GEMINI_API_KEY = process.env.GEMINI_API_KEY;
|
||||
|
||||
async function main() {
|
||||
const controlLightDeclaration: FunctionDeclaration = {
|
||||
name: 'controlLight',
|
||||
parameters: {
|
||||
type: Type.OBJECT,
|
||||
description: 'Set the brightness and color temperature of a room light.',
|
||||
properties: {
|
||||
brightness: {
|
||||
type: Type.NUMBER,
|
||||
description:
|
||||
'Light level from 0 to 100. Zero is off and 100 is full brightness.',
|
||||
},
|
||||
colorTemperature: {
|
||||
type: Type.STRING,
|
||||
description:
|
||||
'Color temperature of the light fixture which can be `daylight`, `cool`, or `warm`.',
|
||||
},
|
||||
},
|
||||
required: ['brightness', 'colorTemperature'],
|
||||
},
|
||||
};
|
||||
|
||||
const ai = new GoogleGenAI({apiKey: GEMINI_API_KEY});
|
||||
const response = await ai.models.generateContent({
|
||||
model: 'gemini-2.0-flash-001',
|
||||
contents: 'Dim the lights so the room feels cozy and warm.',
|
||||
config: {
|
||||
toolConfig: {
|
||||
functionCallingConfig: {
|
||||
// Force it to call any function
|
||||
mode: FunctionCallingConfigMode.ANY,
|
||||
allowedFunctionNames: ['controlLight'],
|
||||
}
|
||||
},
|
||||
tools: [{functionDeclarations: [controlLightDeclaration]}]
|
||||
}
|
||||
});
|
||||
|
||||
console.log(response.functionCalls);
|
||||
}
|
||||
|
||||
main();
|
||||
```
|
||||
|
||||
### Generate Content
|
||||
|
||||
#### How to structure `contents` argument for `generateContent`
|
||||
|
||||
The SDK allows you to specify the following types in the `contents` parameter:
|
||||
|
||||
#### Content
|
||||
|
||||
- `Content`: The SDK will wrap the singular `Content` instance in an array which
|
||||
contains only the given content instance
|
||||
- `Content[]`: No transformation happens
|
||||
|
||||
#### Part
|
||||
|
||||
Parts will be aggregated on a singular Content, with role 'user'.
|
||||
|
||||
- `Part | string`: The SDK will wrap the `string` or `Part` in a `Content`
|
||||
instance with role 'user'.
|
||||
- `Part[] | string[]`: The SDK will wrap the full provided list into a single
|
||||
`Content` with role 'user'.
|
||||
|
||||
**_NOTE:_** This doesn't apply to `FunctionCall` and `FunctionResponse` parts,
|
||||
if you are specifying those, you need to explicitly provide the full
|
||||
`Content[]` structure making it explicit which Parts are 'spoken' by the model,
|
||||
or the user. The SDK will throw an exception if you try this.
|
||||
|
||||
## How is this different from the other Google AI SDKs
|
||||
This SDK (`@google/genai`) is Google Deepmind’s "vanilla" SDK for its generative
|
||||
AI offerings, and is where Google Deepmind adds new AI features.
|
||||
|
||||
Models hosted either on the [Vertex AI platform](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/overview) or the [Gemini Developer platform](https://ai.google.dev/gemini-api/docs) are accessible through this SDK.
|
||||
|
||||
Other SDKs may be offering additional AI frameworks on top of this SDK, or may
|
||||
be targeting specific project environments (like Firebase).
|
||||
|
||||
The `@google/generative_language` and `@google-cloud/vertexai` SDKs are previous
|
||||
iterations of this SDK and are no longer receiving new Gemini 2.0+ features.
|
||||
|
||||
+6567
File diff suppressed because it is too large
Load Diff
+15561
File diff suppressed because it is too large
Load Diff
+15508
File diff suppressed because it is too large
Load Diff
+1
File diff suppressed because one or more lines are too long
+15978
File diff suppressed because it is too large
Load Diff
+15905
File diff suppressed because it is too large
Load Diff
+1
File diff suppressed because one or more lines are too long
+6579
File diff suppressed because it is too large
Load Diff
+15568
File diff suppressed because it is too large
Load Diff
+1
File diff suppressed because one or more lines are too long
+6572
File diff suppressed because it is too large
Load Diff
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "@google/genai/node",
|
||||
"main": "../dist/node/index.js"
|
||||
}
|
||||
+120
@@ -0,0 +1,120 @@
|
||||
{
|
||||
"name": "@google/genai",
|
||||
"version": "1.5.1",
|
||||
"description": "",
|
||||
"type": "module",
|
||||
"main": "dist/node/index.mjs",
|
||||
"module": "dist/web/index.mjs",
|
||||
"browser": "dist/web/index.mjs",
|
||||
"typings": "dist/genai.d.ts",
|
||||
"exports": {
|
||||
".": {
|
||||
"browser": {
|
||||
"types": "./dist/web/web.d.ts",
|
||||
"import": "./dist/web/index.mjs",
|
||||
"default": "./dist/web/index.mjs"
|
||||
},
|
||||
"node": {
|
||||
"types": "./dist/node/node.d.ts",
|
||||
"import": "./dist/node/index.mjs",
|
||||
"require": "./dist/node/index.cjs",
|
||||
"default": "./dist/node/index.mjs"
|
||||
},
|
||||
"types": "./dist/genai.d.ts",
|
||||
"import": "./dist/index.mjs",
|
||||
"require": "./dist/index.cjs",
|
||||
"default": "./dist/index.mjs"
|
||||
},
|
||||
"./web": {
|
||||
"types": "./dist/web/web.d.ts",
|
||||
"import": "./dist/web/index.mjs",
|
||||
"default": "./dist/web/index.mjs"
|
||||
},
|
||||
"./node": {
|
||||
"types": "./dist/node/node.d.ts",
|
||||
"import": "./dist/node/index.mjs",
|
||||
"default": "./dist/node/index.mjs"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"prepare": "npm run build-prod",
|
||||
"build": "rollup -c && api-extractor run --local --verbose && api-extractor run -c api-extractor.node.json --local --verbose&& api-extractor run -c api-extractor.web.json --local --verbose",
|
||||
"build-prod": "rollup -c && api-extractor run --verbose && api-extractor run -c api-extractor.node.json --verbose && api-extractor run -c api-extractor.web.json --verbose",
|
||||
"unit-test": "tsc && jasmine dist/test/unit/**/*_test.js dist/test/unit/*_test.js",
|
||||
"system-test": "tsc && jasmine dist/test/system/**/*_test.js",
|
||||
"test-server-tests": "tsc && GOOGLE_CLOUD_PROJECT=googcloudproj GOOGLE_CLOUD_LOCATION=googcloudloc jasmine dist/test/system/node/*_test.js !dist/test/system/node/live_test.js -- --test-server",
|
||||
"test-server-tests:record": "tsc && jasmine --fail-fast dist/test/system/node/*_test.js !dist/test/system/node/live_test.js -- --test-server --record",
|
||||
"docs": "typedoc && ts-node scripts/add_docsite_license_headers.ts",
|
||||
"pages-main": "node --loader ts-node/esm scripts/generate_pages.ts main",
|
||||
"pages-release": "node --loader ts-node/esm scripts/generate_pages.ts release",
|
||||
"format": "prettier '**/*.ts' '**/*.mjs' '**/*.json' --write",
|
||||
"lint": "eslint '**/*.ts'",
|
||||
"lint-fix": "eslint --fix '**/*.ts'"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=20.0.0"
|
||||
},
|
||||
"files": [
|
||||
"dist/genai.d.ts",
|
||||
"dist/index.mjs",
|
||||
"dist/index.cjs",
|
||||
"dist/index.mjs.map",
|
||||
"dist/node/index.mjs",
|
||||
"dist/node/index.cjs",
|
||||
"dist/node/index.mjs.map",
|
||||
"dist/node/node.d.ts",
|
||||
"dist/web/index.mjs",
|
||||
"dist/web/index.mjs.map",
|
||||
"dist/web/web.d.ts",
|
||||
"node/package.json",
|
||||
"web/package.json"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@eslint/js": "9.20.0",
|
||||
"@microsoft/api-extractor": "^7.50.1",
|
||||
"@rollup/plugin-json": "^6.1.0",
|
||||
"@types/jasmine": "^5.1.2",
|
||||
"@types/node": "^20.9.0",
|
||||
"@types/unist": "^3.0.3",
|
||||
"@types/ws": "^8.5.14",
|
||||
"eslint": "8.57.0",
|
||||
"gts": "^5.2.0",
|
||||
"jasmine": "^5.5.0",
|
||||
"jasmine-reporters": "^2.4.0",
|
||||
"nyc": "^17.1.0",
|
||||
"prettier": "3.3.3",
|
||||
"prettier-plugin-organize-imports": "^4.1.0",
|
||||
"rollup-plugin-typescript2": "^0.36.0",
|
||||
"test-server-sdk": "^0.2.1",
|
||||
"ts-node": "^10.9.2",
|
||||
"tslib": "^2.8.1",
|
||||
"tsx": "^4.19.4",
|
||||
"typedoc": "^0.27.0",
|
||||
"typescript": "~5.2.0",
|
||||
"typescript-eslint": "8.24.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"google-auth-library": "^9.14.2",
|
||||
"ws": "^8.18.0",
|
||||
"zod": "^3.22.4",
|
||||
"zod-to-json-schema": "^3.22.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@modelcontextprotocol/sdk": "^1.11.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@modelcontextprotocol/sdk": {
|
||||
"optional": true
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/googleapis/js-genai.git"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/googleapis/js-genai/issues"
|
||||
},
|
||||
"homepage": "https://github.com/googleapis/js-genai#readme",
|
||||
"author": "",
|
||||
"license": "Apache-2.0"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "@google/genai/web",
|
||||
"module": "../dist/web/index.mjs"
|
||||
}
|
||||
Reference in New Issue
Block a user