1abbd7ff41
- Created extensible agent interface with install() and execute() methods - Moved Claude Code logic to agents/claude.ts implementing Agent interface - Added utilities directory for reusable functions (exec, files) - Refactored index.ts to be minimal (35 lines) using agent abstraction - Made anthropic_api_key optional in action.yml - Updated Node.js imports to use node: prefix convention - Bumped version to 0.0.5 - Architecture now supports multiple agents (OpenAI, Gemini, etc.)
35 lines
714 B
TypeScript
35 lines
714 B
TypeScript
/**
|
|
* Standard interface for all Pullfrog agents
|
|
*/
|
|
export interface Agent {
|
|
/**
|
|
* Install the agent and any required dependencies
|
|
*/
|
|
install(): Promise<void>;
|
|
|
|
/**
|
|
* Execute the agent with the given prompt
|
|
* @param prompt The prompt to send to the agent
|
|
* @param options Additional options specific to the agent
|
|
*/
|
|
execute(prompt: string, options?: Record<string, any>): Promise<AgentResult>;
|
|
}
|
|
|
|
/**
|
|
* Result returned by agent execution
|
|
*/
|
|
export interface AgentResult {
|
|
success: boolean;
|
|
output?: string;
|
|
error?: string;
|
|
metadata?: Record<string, any>;
|
|
}
|
|
|
|
/**
|
|
* Configuration for agent creation
|
|
*/
|
|
export interface AgentConfig {
|
|
apiKey?: string;
|
|
[key: string]: any;
|
|
}
|