mycoder-agent
Version:
Agent module for mycoder - an AI-powered software development assistant
74 lines • 2.31 kB
TypeScript
import { z } from 'zod';
import { JsonSchema7Type } from 'zod-to-json-schema';
import { AgentTracker } from '../tools/agent/AgentTracker.js';
import { SessionTracker } from '../tools/session/SessionTracker.js';
import { ShellTracker } from '../tools/shell/ShellTracker.js';
import { Logger } from '../utils/logger.js';
import { TokenTracker } from './tokens.js';
import { ModelProvider } from './toolAgent/config.js';
export type TokenLevel = 'debug' | 'info' | 'log' | 'warn' | 'error';
export type pageFilter = 'simple' | 'none' | 'readability';
export type ToolContext = {
logger: Logger;
workingDirectory: string;
headless: boolean;
userSession: boolean;
pageFilter: pageFilter;
tokenTracker: TokenTracker;
githubMode: boolean;
customPrompt?: string | string[];
tokenCache?: boolean;
userPrompt?: boolean;
agentId?: string;
agentName?: string;
currentAgentId?: string;
provider: ModelProvider;
model?: string;
baseUrl?: string;
apiKey?: string;
maxTokens: number;
temperature: number;
agentTracker: AgentTracker;
shellTracker: ShellTracker;
browserTracker: SessionTracker;
};
export type Tool<TParams = Record<string, any>, TReturn = any> = {
name: string;
description: string;
parameters: z.ZodType<TParams>;
returns: z.ZodType<TReturn>;
logPrefix?: string;
logParameters?: (params: TParams, context: ToolContext) => void;
logReturns?: (returns: TReturn, context: ToolContext) => void;
execute: (params: TParams, context: ToolContext) => Promise<TReturn>;
parametersJsonSchema?: JsonSchema7Type;
returnsJsonSchema?: JsonSchema7Type;
};
export type ToolCall = {
id: string;
name: string;
content: string;
};
export type TextContent = {
type: 'text';
text: string;
};
export type ToolUseContent = {
type: 'tool_use';
} & ToolCall;
export type AssistantMessage = {
role: 'assistant';
content: (TextContent | ToolUseContent)[];
};
export type ToolResultContent = {
type: 'tool_result';
tool_use_id: string;
content: string;
is_error: boolean;
};
export type UserMessage = {
role: 'user';
content: (TextContent | ToolResultContent)[];
};
export type Message = AssistantMessage | UserMessage;
//# sourceMappingURL=types.d.ts.map