🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more

genkit

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

genkit - npm Package Compare versions

Comparing version

to
1.8.0-rc.1

@@ -1,7 +0,8 @@

export { BaseDataPointSchema, Document, DocumentData, DocumentDataSchema, EmbedderAction, EmbedderArgument, EmbedderInfo, EmbedderParams, EmbedderReference, Embedding, EvalResponses, EvaluatorAction, EvaluatorInfo, EvaluatorParams, EvaluatorReference, GenerateOptions, GenerateRequest, GenerateRequestData, GenerateResponse, GenerateResponseChunk, GenerateResponseChunkData, GenerateResponseData, GenerateStreamOptions, GenerateStreamResponse, GenerationBlockedError, GenerationCommonConfigSchema, GenerationResponseError, GenerationUsage, IndexerAction, IndexerArgument, IndexerInfo, IndexerParams, IndexerReference, InterruptConfig, LlmResponse, LlmResponseSchema, LlmStats, LlmStatsSchema, MediaPart, Message, MessageData, MessageSchema, ModelArgument, ModelReference, ModelRequest, ModelRequestSchema, ModelResponseData, ModelResponseSchema, Part, PartSchema, PromptAction, PromptConfig, RankedDocument, RerankerAction, RerankerArgument, RerankerInfo, RerankerParams, RerankerReference, ResumeOptions, RetrieverAction, RetrieverArgument, RetrieverInfo, RetrieverParams, RetrieverReference, Role, RoleSchema, Tool, ToolAction, ToolArgument, ToolCall, ToolCallSchema, ToolConfig, ToolRequest, ToolRequestPart, ToolResponse, ToolResponsePart, ToolSchema, embedderRef, evaluatorRef, indexerRef, rerankerRef, retrieverRef } from '@genkit-ai/ai';
export { BaseDataPointSchema, Document, DocumentData, DocumentDataSchema, EmbedderAction, EmbedderArgument, EmbedderInfo, EmbedderParams, EmbedderReference, Embedding, EvalResponses, EvaluatorAction, EvaluatorInfo, EvaluatorParams, EvaluatorReference, GenerateOptions, GenerateRequest, GenerateRequestData, GenerateResponse, GenerateResponseChunk, GenerateResponseChunkData, GenerateResponseData, GenerateStreamOptions, GenerateStreamResponse, GenerationBlockedError, GenerationCommonConfigSchema, GenerationResponseError, GenerationUsage, IndexerAction, IndexerArgument, IndexerInfo, IndexerParams, IndexerReference, InterruptConfig, LlmResponse, LlmResponseSchema, LlmStats, LlmStatsSchema, MediaPart, Message, MessageData, MessageSchema, ModelArgument, ModelReference, ModelRequest, ModelRequestSchema, ModelResponseData, ModelResponseSchema, Part, PartSchema, PromptAction, PromptConfig, RankedDocument, RerankerAction, RerankerArgument, RerankerInfo, RerankerParams, RerankerReference, ResumeOptions, RetrieverAction, RetrieverArgument, RetrieverInfo, RetrieverParams, RetrieverReference, Role, RoleSchema, Tool, ToolAction, ToolArgument, ToolCall, ToolCallSchema, ToolConfig, ToolRequest, ToolRequestPart, ToolResponse, ToolResponsePart, ToolSchema, embedderActionMetadata, embedderRef, evaluatorRef, indexerRef, modelActionMetadata, modelRef, rerankerRef, retrieverRef } from '@genkit-ai/ai';
export { Chat } from '@genkit-ai/ai/chat';
export { Session, SessionData, SessionStore } from '@genkit-ai/ai/session';
export { dynamicTool } from '@genkit-ai/ai/tool';
export { Action, ActionContext, ActionMetadata, Flow, FlowConfig, FlowFn, FlowSideChannel, GENKIT_CLIENT_HEADER, GENKIT_VERSION, GenkitError, JSONSchema, JSONSchema7, Middleware, ReflectionServer, ReflectionServerOptions, RunActionResponse, Status, StatusCodes, StatusName, StatusSchema, StreamingCallback, StreamingResponse, TelemetryConfig, UserFacingError, defineJsonSchema, defineSchema, getCurrentEnv, getStreamingCallback, isDevEnv, runWithStreamingCallback, z } from '@genkit-ai/core';
export { GenkitBeta, genkit } from './genkit-beta.js';
export { G as GenkitBetaOptions } from './index-Dhno6U3s.js';
export { G as GenkitBetaOptions } from './index-C5kV7ocs.js';
import '@genkit-ai/ai/formats';

@@ -13,3 +14,2 @@ import '@genkit-ai/ai/reranker';

import '@genkit-ai/ai/retriever';
import '@genkit-ai/ai/tool';
import '@genkit-ai/core/registry';

@@ -1,4 +0,5 @@

export { BaseDataPointSchema, Document, DocumentData, DocumentDataSchema, EmbedderAction, EmbedderArgument, EmbedderInfo, EmbedderParams, EmbedderReference, Embedding, EvalResponses, EvaluatorAction, EvaluatorInfo, EvaluatorParams, EvaluatorReference, GenerateOptions, GenerateRequest, GenerateRequestData, GenerateResponse, GenerateResponseChunk, GenerateResponseChunkData, GenerateResponseData, GenerateStreamOptions, GenerateStreamResponse, GenerationBlockedError, GenerationCommonConfigSchema, GenerationResponseError, GenerationUsage, IndexerAction, IndexerArgument, IndexerInfo, IndexerParams, IndexerReference, InterruptConfig, LlmResponse, LlmResponseSchema, LlmStats, LlmStatsSchema, MediaPart, Message, MessageData, MessageSchema, ModelArgument, ModelReference, ModelRequest, ModelRequestSchema, ModelResponseData, ModelResponseSchema, Part, PartSchema, PromptAction, PromptConfig, RankedDocument, RerankerAction, RerankerArgument, RerankerInfo, RerankerParams, RerankerReference, ResumeOptions, RetrieverAction, RetrieverArgument, RetrieverInfo, RetrieverParams, RetrieverReference, Role, RoleSchema, Tool, ToolAction, ToolArgument, ToolCall, ToolCallSchema, ToolConfig, ToolRequest, ToolRequestPart, ToolResponse, ToolResponsePart, ToolSchema, embedderRef, evaluatorRef, indexerRef, rerankerRef, retrieverRef } from '@genkit-ai/ai';
export { BaseDataPointSchema, Document, DocumentData, DocumentDataSchema, EmbedderAction, EmbedderArgument, EmbedderInfo, EmbedderParams, EmbedderReference, Embedding, EvalResponses, EvaluatorAction, EvaluatorInfo, EvaluatorParams, EvaluatorReference, GenerateOptions, GenerateRequest, GenerateRequestData, GenerateResponse, GenerateResponseChunk, GenerateResponseChunkData, GenerateResponseData, GenerateStreamOptions, GenerateStreamResponse, GenerationBlockedError, GenerationCommonConfigSchema, GenerationResponseError, GenerationUsage, IndexerAction, IndexerArgument, IndexerInfo, IndexerParams, IndexerReference, InterruptConfig, LlmResponse, LlmResponseSchema, LlmStats, LlmStatsSchema, MediaPart, Message, MessageData, MessageSchema, ModelArgument, ModelReference, ModelRequest, ModelRequestSchema, ModelResponseData, ModelResponseSchema, Part, PartSchema, PromptAction, PromptConfig, RankedDocument, RerankerAction, RerankerArgument, RerankerInfo, RerankerParams, RerankerReference, ResumeOptions, RetrieverAction, RetrieverArgument, RetrieverInfo, RetrieverParams, RetrieverReference, Role, RoleSchema, Tool, ToolAction, ToolArgument, ToolCall, ToolCallSchema, ToolConfig, ToolRequest, ToolRequestPart, ToolResponse, ToolResponsePart, ToolSchema, embedderActionMetadata, embedderRef, evaluatorRef, indexerRef, modelActionMetadata, modelRef, rerankerRef, retrieverRef } from '@genkit-ai/ai';
export { Chat } from '@genkit-ai/ai/chat';
export { Session, SessionData, SessionStore } from '@genkit-ai/ai/session';
export { dynamicTool } from '@genkit-ai/ai/tool';
export { Action, ActionContext, ActionMetadata, Flow, FlowConfig, FlowFn, FlowSideChannel, GENKIT_CLIENT_HEADER, GENKIT_VERSION, GenkitError, JSONSchema, JSONSchema7, Middleware, ReflectionServer, ReflectionServerOptions, RunActionResponse, Status, StatusCodes, StatusName, StatusSchema, StreamingCallback, StreamingResponse, TelemetryConfig, UserFacingError, defineJsonSchema, defineSchema, getCurrentEnv, getStreamingCallback, isDevEnv, runWithStreamingCallback, z } from '@genkit-ai/core';

@@ -17,3 +18,2 @@ import '@genkit-ai/ai/formats';

import '@genkit-ai/ai/testing';
import '@genkit-ai/ai/tool';
import '@genkit-ai/core/tracing';

@@ -48,2 +48,4 @@ "use strict";

defineSchema: () => import_core.defineSchema,
dynamicTool: () => import_tool.dynamicTool,
embedderActionMetadata: () => import_ai.embedderActionMetadata,
embedderRef: () => import_ai.embedderRef,

@@ -55,2 +57,4 @@ evaluatorRef: () => import_ai.evaluatorRef,

isDevEnv: () => import_core.isDevEnv,
modelActionMetadata: () => import_ai.modelActionMetadata,
modelRef: () => import_ai.modelRef,
rerankerRef: () => import_ai.rerankerRef,

@@ -65,2 +69,3 @@ retrieverRef: () => import_ai.retrieverRef,

var import_session = require("@genkit-ai/ai/session");
var import_tool = require("@genkit-ai/ai/tool");
var import_core = require("@genkit-ai/core");

@@ -96,2 +101,4 @@ // Annotate the CommonJS export names for ESM import in node:

defineSchema,
dynamicTool,
embedderActionMetadata,
embedderRef,

@@ -103,2 +110,4 @@ evaluatorRef,

isDevEnv,
modelActionMetadata,
modelRef,
rerankerRef,

@@ -105,0 +114,0 @@ retrieverRef,

import { ExecutablePrompt, InterruptConfig, ToolAction } from '@genkit-ai/ai';
import { ChatOptions, Chat } from '@genkit-ai/ai/chat';
import { SessionOptions, Session } from '@genkit-ai/ai/session';
import '@genkit-ai/ai/tool';
import { z } from '@genkit-ai/core';
import { Formatter } from '@genkit-ai/ai/formats';
import { G as GenkitOptions, a as Genkit } from './index-Dhno6U3s.js';
import { G as GenkitOptions, a as Genkit } from './index-C5kV7ocs.js';
import '@genkit-ai/ai/reranker';

@@ -12,3 +13,2 @@ import '@genkit-ai/ai/embedder';

import '@genkit-ai/ai/retriever';
import '@genkit-ai/ai/tool';
import '@genkit-ai/core/registry';

@@ -15,0 +15,0 @@

@@ -10,4 +10,4 @@ import '@genkit-ai/ai/reranker';

import '@genkit-ai/core/registry';
export { a as Genkit, G as GenkitOptions, c as PromptFn, _ as __disableReflectionApi, d as genkit } from './index-Dhno6U3s.js';
export { a as Genkit, G as GenkitOptions, e as PromptFn, _ as __disableReflectionApi, f as genkit } from './index-C5kV7ocs.js';
import '@genkit-ai/ai/chat';
import '@genkit-ai/ai/session';

@@ -113,4 +113,4 @@ "use strict";

};
executablePrompt.render = async (opt) => {
return (await promise).render(opt.input, opt);
executablePrompt.render = async (input, opts) => {
return (await promise).render(input, opts);
};

@@ -347,2 +347,8 @@ executablePrompt.stream = (input, opts) => {

}
},
async listActions() {
if (loadedPlugin.listActions) {
return await loadedPlugin.listActions();
}
return [];
}

@@ -349,0 +355,0 @@ });

@@ -1,6 +0,7 @@

export { BaseDataPointSchema, Document, DocumentData, DocumentDataSchema, EmbedderAction, EmbedderArgument, EmbedderInfo, EmbedderParams, EmbedderReference, Embedding, EvalResponses, EvaluatorAction, EvaluatorInfo, EvaluatorParams, EvaluatorReference, GenerateOptions, GenerateRequest, GenerateRequestData, GenerateResponse, GenerateResponseChunk, GenerateResponseChunkData, GenerateResponseData, GenerateStreamOptions, GenerateStreamResponse, GenerationBlockedError, GenerationCommonConfigSchema, GenerationResponseError, GenerationUsage, IndexerAction, IndexerArgument, IndexerInfo, IndexerParams, IndexerReference, InterruptConfig, LlmResponse, LlmResponseSchema, LlmStats, LlmStatsSchema, MediaPart, Message, MessageData, MessageSchema, ModelArgument, ModelReference, ModelRequest, ModelRequestSchema, ModelResponseData, ModelResponseSchema, Part, PartSchema, PromptAction, PromptConfig, RankedDocument, RerankerAction, RerankerArgument, RerankerInfo, RerankerParams, RerankerReference, ResumeOptions, RetrieverAction, RetrieverArgument, RetrieverInfo, RetrieverParams, RetrieverReference, Role, RoleSchema, Tool, ToolAction, ToolArgument, ToolCall, ToolCallSchema, ToolConfig, ToolRequest, ToolRequestPart, ToolResponse, ToolResponsePart, ToolSchema, embedderRef, evaluatorRef, indexerRef, rerankerRef, retrieverRef } from '@genkit-ai/ai';
export { BaseDataPointSchema, Document, DocumentData, DocumentDataSchema, EmbedderAction, EmbedderArgument, EmbedderInfo, EmbedderParams, EmbedderReference, Embedding, EvalResponses, EvaluatorAction, EvaluatorInfo, EvaluatorParams, EvaluatorReference, GenerateOptions, GenerateRequest, GenerateRequestData, GenerateResponse, GenerateResponseChunk, GenerateResponseChunkData, GenerateResponseData, GenerateStreamOptions, GenerateStreamResponse, GenerationBlockedError, GenerationCommonConfigSchema, GenerationResponseError, GenerationUsage, IndexerAction, IndexerArgument, IndexerInfo, IndexerParams, IndexerReference, InterruptConfig, LlmResponse, LlmResponseSchema, LlmStats, LlmStatsSchema, MediaPart, Message, MessageData, MessageSchema, ModelArgument, ModelReference, ModelRequest, ModelRequestSchema, ModelResponseData, ModelResponseSchema, Part, PartSchema, PromptAction, PromptConfig, RankedDocument, RerankerAction, RerankerArgument, RerankerInfo, RerankerParams, RerankerReference, ResumeOptions, RetrieverAction, RetrieverArgument, RetrieverInfo, RetrieverParams, RetrieverReference, Role, RoleSchema, Tool, ToolAction, ToolArgument, ToolCall, ToolCallSchema, ToolConfig, ToolRequest, ToolRequestPart, ToolResponse, ToolResponsePart, ToolSchema, embedderActionMetadata, embedderRef, evaluatorRef, indexerRef, modelActionMetadata, modelRef, rerankerRef, retrieverRef } from '@genkit-ai/ai';
export { Chat } from '@genkit-ai/ai/chat';
export { Session, SessionData, SessionStore } from '@genkit-ai/ai/session';
export { dynamicTool } from '@genkit-ai/ai/tool';
export { Action, ActionContext, ActionMetadata, Flow, FlowConfig, FlowFn, FlowSideChannel, GENKIT_CLIENT_HEADER, GENKIT_VERSION, GenkitError, JSONSchema, JSONSchema7, Middleware, ReflectionServer, ReflectionServerOptions, RunActionResponse, Status, StatusCodes, StatusName, StatusSchema, StreamingCallback, StreamingResponse, TelemetryConfig, UserFacingError, defineJsonSchema, defineSchema, getCurrentEnv, getStreamingCallback, isDevEnv, runWithStreamingCallback, z } from '@genkit-ai/core';
export { a as Genkit, G as GenkitOptions, d as genkit } from './index-Dhno6U3s.js';
export { a as Genkit, G as GenkitOptions, f as genkit } from './index-C5kV7ocs.js';
import '@genkit-ai/ai/reranker';

@@ -11,3 +12,2 @@ import '@genkit-ai/ai/embedder';

import '@genkit-ai/ai/retriever';
import '@genkit-ai/ai/tool';
import '@genkit-ai/core/registry';

@@ -1,2 +0,3 @@

export { b as GenkitPlugin, P as PluginProvider, g as genkitPlugin } from './index-Dhno6U3s.js';
import '@genkit-ai/core';
export { b as GenkitPlugin, d as PluginActionResolver, c as PluginInit, P as PluginProvider, g as genkitPlugin } from './index-C5kV7ocs.js';
import '@genkit-ai/core/registry';

@@ -6,3 +7,3 @@ import '@genkit-ai/ai';

import '@genkit-ai/ai/session';
import '@genkit-ai/core';
import '@genkit-ai/ai/tool';
import '@genkit-ai/ai/reranker';

@@ -13,2 +14,1 @@ import '@genkit-ai/ai/embedder';

import '@genkit-ai/ai/retriever';
import '@genkit-ai/ai/tool';

@@ -24,3 +24,3 @@ "use strict";

module.exports = __toCommonJS(plugin_exports);
function genkitPlugin(pluginName, initFn, resolveFn) {
function genkitPlugin(pluginName, initFn, resolveFn, listActionsFn) {
return (genkit) => ({

@@ -35,2 +35,8 @@ name: pluginName,

}
},
listActions: async () => {
if (listActionsFn) {
return await listActionsFn();
}
return [];
}

@@ -37,0 +43,0 @@ });

@@ -1,1 +0,1 @@

export { ToolAction, ToolArgument, ToolConfig, asTool, toToolDefinition } from '@genkit-ai/ai/tool';
export { ToolAction, ToolArgument, ToolConfig, asTool, dynamicTool, toToolDefinition } from '@genkit-ai/ai/tool';

@@ -22,2 +22,3 @@ "use strict";

asTool: () => import_tool.asTool,
dynamicTool: () => import_tool.dynamicTool,
toToolDefinition: () => import_tool.toToolDefinition

@@ -30,4 +31,5 @@ });

asTool,
dynamicTool,
toToolDefinition
});
//# sourceMappingURL=tool.js.map

@@ -10,3 +10,3 @@ {

],
"version": "1.7.0",
"version": "1.8.0-rc.1",
"type": "commonjs",

@@ -23,4 +23,4 @@ "main": "./lib/cjs/index.js",

"uuid": "^10.0.0",
"@genkit-ai/core": "1.7.0",
"@genkit-ai/ai": "1.7.0"
"@genkit-ai/ai": "1.8.0-rc.1",
"@genkit-ai/core": "1.8.0-rc.1"
},

@@ -27,0 +27,0 @@ "devDependencies": {

@@ -35,5 +35,8 @@ /**

ToolSchema,
embedderActionMetadata,
embedderRef,
evaluatorRef,
indexerRef,
modelActionMetadata,
modelRef,
rerankerRef,

@@ -109,2 +112,3 @@ retrieverRef,

} from '@genkit-ai/ai/session';
export { dynamicTool } from '@genkit-ai/ai/tool';
export {

@@ -111,0 +115,0 @@ GENKIT_CLIENT_HEADER,

@@ -266,7 +266,6 @@ /**

executablePrompt.render = async (
opt: PromptGenerateOptions<O, CustomOptions> & {
input?: I;
}
input?: I,
opts?: PromptGenerateOptions<O, CustomOptions>
): Promise<GenerateOptions<O, CustomOptions>> => {
return (await promise).render(opt.input, opt) as Promise<
return (await promise).render(input, opts) as Promise<
GenerateOptions<O, CustomOptions>

@@ -816,2 +815,8 @@ >;

},
async listActions() {
if (loadedPlugin.listActions) {
return await loadedPlugin.listActions();
}
return [];
},
});

@@ -818,0 +823,0 @@ });

@@ -17,2 +17,3 @@ /**

import { ActionMetadata } from '@genkit-ai/core';
import { Genkit } from './genkit.js';

@@ -25,2 +26,3 @@ import { ActionType } from './registry.js';

resolver?: (action: ActionType, target: string) => Promise<void>;
listActions?: () => Promise<ActionMetadata[]>;
}

@@ -30,5 +32,5 @@

type PluginInit = (genkit: Genkit) => void | Promise<void>;
export type PluginInit = (genkit: Genkit) => void | Promise<void>;
type PluginActionResolver = (
export type PluginActionResolver = (
genkit: Genkit,

@@ -45,3 +47,4 @@ action: ActionType,

initFn: T,
resolveFn?: PluginActionResolver
resolveFn?: PluginActionResolver,
listActionsFn?: () => Promise<ActionMetadata[]>
): GenkitPlugin {

@@ -58,3 +61,9 @@ return (genkit: Genkit) => ({

},
listActions: async (): Promise<ActionMetadata[]> => {
if (listActionsFn) {
return await listActionsFn();
}
return [];
},
});
}

@@ -19,2 +19,3 @@ /**

asTool,
dynamicTool,
toToolDefinition,

@@ -21,0 +22,0 @@ type ToolAction,

@@ -34,2 +34,3 @@ /**

model: 'echoModel',
promptDir: './tests/prompts',
});

@@ -159,2 +160,15 @@ defineEchoModel(ai);

it('can start chat from a prompt file with input', async () => {
const preamble = ai.prompt('chat_preamble');
const session = await ai.chat(preamble, {
input: { name: 'Genkit' },
});
const response = await session.send('send it');
assert.strictEqual(
response.text,
'Echo: hi Genkit from template,send it; config: {"version":"abc"}'
);
});
it('can send a rendered prompt to chat', async () => {

@@ -161,0 +175,0 @@ const prompt = ai.definePrompt({

@@ -18,6 +18,7 @@ /**

import { GenerateResponseChunkData, MessageData } from '@genkit-ai/ai';
import { z } from '@genkit-ai/core';
import { JSONSchema7, z } from '@genkit-ai/core';
import * as assert from 'assert';
import { beforeEach, describe, it } from 'node:test';
import { modelRef } from '../../ai/src/model';
import { dynamicTool } from '../../ai/src/tool';
import { GenkitBeta, genkit } from '../src/beta';

@@ -403,2 +404,188 @@ import {

it('calls the dynamic tool', async () => {
const schema = {
properties: {
foo: { type: 'string' },
},
} as JSONSchema7;
const dynamicTestTool1 = dynamicTool(
ai,
{
name: 'dynamicTestTool1',
inputJsonSchema: schema,
description: 'description',
},
async () => 'tool called 1'
);
const dynamicTestTool2 = dynamicTool(
ai,
{
name: 'dynamicTestTool2',
inputJsonSchema: schema,
description: 'description 2',
},
async () => 'tool called 2'
);
// first response be tools call, the subsequent just text response from agent b.
let reqCounter = 0;
pm.handleResponse = async (req, sc) => {
return {
message: {
role: 'model',
content:
reqCounter++ === 0
? [
{
toolRequest: {
name: 'dynamicTestTool1',
input: { foo: 'bar' },
ref: 'ref123',
},
},
{
toolRequest: {
name: 'dynamicTestTool2',
input: { foo: 'baz' },
ref: 'ref234',
},
},
]
: [{ text: 'done' }],
},
};
};
const { text } = await ai.generate({
prompt: 'call the tool',
tools: [dynamicTestTool1, dynamicTestTool2],
});
assert.strictEqual(text, 'done');
assert.deepStrictEqual(
pm.lastRequest,
{
config: {},
messages: [
{
role: 'user',
content: [{ text: 'call the tool' }],
},
{
role: 'model',
content: [
{
toolRequest: {
input: { foo: 'bar' },
name: 'dynamicTestTool1',
ref: 'ref123',
},
},
{
toolRequest: {
input: { foo: 'baz' },
name: 'dynamicTestTool2',
ref: 'ref234',
},
},
],
},
{
role: 'tool',
content: [
{
toolResponse: {
name: 'dynamicTestTool1',
output: 'tool called 1',
ref: 'ref123',
},
},
{
toolResponse: {
name: 'dynamicTestTool2',
output: 'tool called 2',
ref: 'ref234',
},
},
],
},
],
output: {},
tools: [
{
description: 'description',
inputSchema: schema,
name: 'dynamicTestTool1',
outputSchema: {
$schema: 'http://json-schema.org/draft-07/schema#',
},
},
{
description: 'description 2',
inputSchema: schema,
name: 'dynamicTestTool2',
outputSchema: {
$schema: 'http://json-schema.org/draft-07/schema#',
},
},
],
}
);
});
it.only('interrupts the dynamic tool with no impl', async () => {
const schema = {
properties: {
foo: { type: 'string' },
},
} as JSONSchema7;
const dynamicTestTool = dynamicTool(ai, {
name: 'dynamicTestTool',
inputJsonSchema: schema,
description: 'description',
});
// first response be tools call, the subsequent just text response from agent b.
let reqCounter = 0;
pm.handleResponse = async (req, sc) => {
return {
message: {
role: 'model',
content: [
reqCounter++ === 0
? {
toolRequest: {
name: 'dynamicTestTool',
input: { foo: 'bar' },
ref: 'ref123',
},
}
: { text: 'done' },
],
},
};
};
const response = await ai.generate({
prompt: 'call the tool',
tools: [dynamicTestTool],
});
assert.deepStrictEqual(response.interrupts, [
{
metadata: {
interrupt: true,
},
toolRequest: {
input: {
foo: 'bar',
},
name: 'dynamicTestTool',
ref: 'ref123',
},
},
]);
});
it('call the tool with output schema', async () => {

@@ -830,3 +1017,3 @@ const schema = z.object({

it('can resume generation', { only: true }, async () => {
it('can resume generation', async () => {
const interrupter = ai.defineInterrupt({

@@ -833,0 +1020,0 @@ name: 'interrupter',

@@ -1109,3 +1109,3 @@ /**

{
text: ' from the prompt file ',
text: ' from the prompt file banana',
},

@@ -1118,3 +1118,2 @@ ],

toolChoice: 'required',
subject: 'banana',
tools: ['toolA', 'toolB'],

@@ -1124,2 +1123,77 @@ });

it('renders loaded prompt via executable-prompt', async () => {
ai.defineModel(
{ name: 'googleai/gemini-5.0-ultimate-pro-plus' },
async () => ({})
);
ai.defineTool(
{
name: 'toolA',
description: 'toolA it is',
},
async () => {}
);
ai.defineTool(
{
name: 'toolB',
description: 'toolB it is',
},
async () => {}
);
const generateActionOptions = await (
await ai.registry.lookupAction('/executable-prompt/kitchensink')
)({ subject: 'banana' });
assert.deepStrictEqual(stripUndefinedProps(generateActionOptions), {
config: {
temperature: 11,
},
model: 'googleai/gemini-5.0-ultimate-pro-plus',
maxTurns: 77,
messages: [
{ role: 'system', content: [{ text: ' Hello ' }] },
{ role: 'model', content: [{ text: ' from the prompt file banana' }] },
],
output: {
format: 'csv',
jsonSchema: {
additionalProperties: false,
properties: {
arr: {
description: 'array of objects',
items: {
additionalProperties: false,
properties: {
nest2: {
type: ['boolean', 'null'],
},
},
type: 'object',
},
type: 'array',
},
obj: {
additionalProperties: false,
description: 'a nested object',
properties: {
nest1: {
type: ['string', 'null'],
},
},
type: ['object', 'null'],
},
},
required: ['arr'],
type: 'object',
},
},
returnToolRequests: true,
toolChoice: 'required',
tools: ['/tool/toolA', '/tool/toolB'],
});
});
it('resolved schema refs', async () => {

@@ -1126,0 +1200,0 @@ const prompt = ai.prompt('schemaRef');

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet