@alexnetrebskii/hive-agent 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +425 -0
  2. package/dist/agent.d.ts +24 -0
  3. package/dist/agent.d.ts.map +1 -0
  4. package/dist/agent.js +277 -0
  5. package/dist/agent.js.map +1 -0
  6. package/dist/context.d.ts +52 -0
  7. package/dist/context.d.ts.map +1 -0
  8. package/dist/context.js +124 -0
  9. package/dist/context.js.map +1 -0
  10. package/dist/executor.d.ts +29 -0
  11. package/dist/executor.d.ts.map +1 -0
  12. package/dist/executor.js +349 -0
  13. package/dist/executor.js.map +1 -0
  14. package/dist/index.d.ts +16 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +20 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/prompt.d.ts +31 -0
  19. package/dist/prompt.d.ts.map +1 -0
  20. package/dist/prompt.js +84 -0
  21. package/dist/prompt.js.map +1 -0
  22. package/dist/providers/index.d.ts +11 -0
  23. package/dist/providers/index.d.ts.map +1 -0
  24. package/dist/providers/index.js +8 -0
  25. package/dist/providers/index.js.map +1 -0
  26. package/dist/providers/llm/base.d.ts +7 -0
  27. package/dist/providers/llm/base.d.ts.map +1 -0
  28. package/dist/providers/llm/base.js +7 -0
  29. package/dist/providers/llm/base.js.map +1 -0
  30. package/dist/providers/llm/claude.d.ts +31 -0
  31. package/dist/providers/llm/claude.d.ts.map +1 -0
  32. package/dist/providers/llm/claude.js +180 -0
  33. package/dist/providers/llm/claude.js.map +1 -0
  34. package/dist/providers/llm/openai.d.ts +25 -0
  35. package/dist/providers/llm/openai.d.ts.map +1 -0
  36. package/dist/providers/llm/openai.js +171 -0
  37. package/dist/providers/llm/openai.js.map +1 -0
  38. package/dist/providers/logger/base.d.ts +7 -0
  39. package/dist/providers/logger/base.d.ts.map +1 -0
  40. package/dist/providers/logger/base.js +7 -0
  41. package/dist/providers/logger/base.js.map +1 -0
  42. package/dist/providers/logger/console.d.ts +29 -0
  43. package/dist/providers/logger/console.d.ts.map +1 -0
  44. package/dist/providers/logger/console.js +71 -0
  45. package/dist/providers/logger/console.js.map +1 -0
  46. package/dist/providers/repository/base.d.ts +7 -0
  47. package/dist/providers/repository/base.d.ts.map +1 -0
  48. package/dist/providers/repository/base.js +7 -0
  49. package/dist/providers/repository/base.js.map +1 -0
  50. package/dist/providers/repository/memory.d.ts +21 -0
  51. package/dist/providers/repository/memory.d.ts.map +1 -0
  52. package/dist/providers/repository/memory.js +50 -0
  53. package/dist/providers/repository/memory.js.map +1 -0
  54. package/dist/review.d.ts +68 -0
  55. package/dist/review.d.ts.map +1 -0
  56. package/dist/review.js +263 -0
  57. package/dist/review.js.map +1 -0
  58. package/dist/todo.d.ts +73 -0
  59. package/dist/todo.d.ts.map +1 -0
  60. package/dist/todo.js +320 -0
  61. package/dist/todo.js.map +1 -0
  62. package/dist/types.d.ts +257 -0
  63. package/dist/types.d.ts.map +1 -0
  64. package/dist/types.js +5 -0
  65. package/dist/types.js.map +1 -0
  66. package/package.json +43 -0
package/dist/todo.js ADDED
@@ -0,0 +1,320 @@
1
+ /**
2
+ * Todo List Management
3
+ *
4
+ * Provides todo list functionality for agents to track and execute tasks.
5
+ */
6
+ /**
7
+ * Generate unique ID for todo items
8
+ */
9
+ function generateId() {
10
+ return Math.random().toString(36).substring(2, 9);
11
+ }
12
+ /**
13
+ * Format todo list for display
14
+ */
15
+ export function formatTodoList(todos) {
16
+ if (todos.length === 0) {
17
+ return 'No tasks in the todo list.';
18
+ }
19
+ const statusEmoji = {
20
+ pending: '⬜',
21
+ in_progress: '🔄',
22
+ completed: '✅'
23
+ };
24
+ return todos
25
+ .map((todo, index) => {
26
+ const emoji = statusEmoji[todo.status];
27
+ // Show activeForm when in_progress, otherwise show content
28
+ const label = todo.status === 'in_progress' && todo.activeForm
29
+ ? todo.activeForm
30
+ : todo.content;
31
+ return `${index + 1}. ${emoji} ${label}`;
32
+ })
33
+ .join('\n');
34
+ }
35
+ /**
36
+ * Create the TodoManager class for tracking todos during execution
37
+ */
38
+ export class TodoManager {
39
+ items = new Map();
40
+ currentTaskId;
41
+ /**
42
+ * Get all todo items
43
+ */
44
+ getAll() {
45
+ return Array.from(this.items.values());
46
+ }
47
+ /**
48
+ * Get current task being worked on
49
+ */
50
+ getCurrentTask() {
51
+ if (!this.currentTaskId)
52
+ return undefined;
53
+ return this.items.get(this.currentTaskId);
54
+ }
55
+ /**
56
+ * Add a new todo item
57
+ */
58
+ add(content, activeForm) {
59
+ const item = {
60
+ id: generateId(),
61
+ content,
62
+ activeForm,
63
+ status: 'pending',
64
+ createdAt: Date.now()
65
+ };
66
+ this.items.set(item.id, item);
67
+ return item;
68
+ }
69
+ /**
70
+ * Set multiple todos at once (replaces existing)
71
+ */
72
+ setAll(todos) {
73
+ this.items.clear();
74
+ this.currentTaskId = undefined;
75
+ const items = todos.map(todo => {
76
+ const item = {
77
+ id: generateId(),
78
+ content: todo.content,
79
+ activeForm: todo.activeForm,
80
+ status: todo.status || 'pending',
81
+ createdAt: Date.now()
82
+ };
83
+ this.items.set(item.id, item);
84
+ return item;
85
+ });
86
+ // Set first pending as in_progress
87
+ const firstPending = items.find(i => i.status === 'pending');
88
+ if (firstPending) {
89
+ firstPending.status = 'in_progress';
90
+ this.currentTaskId = firstPending.id;
91
+ }
92
+ return items;
93
+ }
94
+ /**
95
+ * Mark a todo as in progress
96
+ */
97
+ startTask(id) {
98
+ const item = this.items.get(id);
99
+ if (!item)
100
+ return undefined;
101
+ // Mark previous current as pending if not completed
102
+ if (this.currentTaskId && this.currentTaskId !== id) {
103
+ const current = this.items.get(this.currentTaskId);
104
+ if (current && current.status === 'in_progress') {
105
+ current.status = 'pending';
106
+ }
107
+ }
108
+ item.status = 'in_progress';
109
+ this.currentTaskId = id;
110
+ return item;
111
+ }
112
+ /**
113
+ * Mark a todo as completed and start next
114
+ */
115
+ completeTask(id) {
116
+ const item = this.items.get(id);
117
+ if (!item)
118
+ return undefined;
119
+ item.status = 'completed';
120
+ item.completedAt = Date.now();
121
+ if (this.currentTaskId === id) {
122
+ this.currentTaskId = undefined;
123
+ }
124
+ // Find and start next pending task
125
+ const nextPending = Array.from(this.items.values()).find(i => i.status === 'pending');
126
+ if (nextPending) {
127
+ nextPending.status = 'in_progress';
128
+ this.currentTaskId = nextPending.id;
129
+ return { completed: item, next: nextPending };
130
+ }
131
+ return { completed: item };
132
+ }
133
+ /**
134
+ * Complete current task and move to next
135
+ */
136
+ completeCurrentAndNext() {
137
+ if (!this.currentTaskId) {
138
+ // No current task, find first pending
139
+ const pending = Array.from(this.items.values()).find(i => i.status === 'pending');
140
+ if (pending) {
141
+ pending.status = 'in_progress';
142
+ this.currentTaskId = pending.id;
143
+ return { next: pending };
144
+ }
145
+ return {};
146
+ }
147
+ return this.completeTask(this.currentTaskId) || {};
148
+ }
149
+ /**
150
+ * Check if all tasks are completed
151
+ */
152
+ isAllCompleted() {
153
+ return Array.from(this.items.values()).every(i => i.status === 'completed');
154
+ }
155
+ /**
156
+ * Get progress stats
157
+ */
158
+ getProgress() {
159
+ const items = Array.from(this.items.values());
160
+ return {
161
+ total: items.length,
162
+ completed: items.filter(i => i.status === 'completed').length,
163
+ pending: items.filter(i => i.status === 'pending').length,
164
+ inProgress: items.filter(i => i.status === 'in_progress').length
165
+ };
166
+ }
167
+ }
168
+ /**
169
+ * Create the __todo__ tool
170
+ */
171
+ export function createTodoTool(manager) {
172
+ return {
173
+ name: '__todo__',
174
+ description: `Manage a todo list to track and execute tasks step by step.
175
+
176
+ Use this tool to:
177
+ - Create a list of tasks to complete for complex requests
178
+ - Mark tasks as completed as you finish them
179
+ - Track your progress through a multi-step process
180
+
181
+ Actions:
182
+ - "set": Replace the entire todo list with new items
183
+ - "complete": Mark the current task as done and move to next
184
+ - "list": Show current todo list status
185
+
186
+ Items format:
187
+ Each item should have:
188
+ - content: What needs to be done (imperative form, e.g., "Run tests")
189
+ - activeForm: What's happening (present continuous, e.g., "Running tests")
190
+
191
+ Examples:
192
+ - Set todos: { "action": "set", "items": [{"content": "Run tests", "activeForm": "Running tests"}, {"content": "Build project", "activeForm": "Building project"}] }
193
+ - Complete current: { "action": "complete" }
194
+ - Show list: { "action": "list" }
195
+
196
+ Best practices:
197
+ - Create a todo list at the start of complex tasks
198
+ - Complete each task before moving to the next
199
+ - Keep task descriptions concise but clear
200
+ - Use activeForm to show dynamic status during execution`,
201
+ parameters: {
202
+ type: 'object',
203
+ properties: {
204
+ action: {
205
+ type: 'string',
206
+ enum: ['set', 'complete', 'list'],
207
+ description: 'The action to perform'
208
+ },
209
+ items: {
210
+ type: 'string',
211
+ description: 'Array of task descriptions (for "set" action)'
212
+ }
213
+ },
214
+ required: ['action']
215
+ },
216
+ execute: async (params) => {
217
+ const { action, items: rawItems } = params;
218
+ let items;
219
+ if (rawItems) {
220
+ let parsed = rawItems;
221
+ // Parse JSON string if needed
222
+ if (typeof rawItems === 'string') {
223
+ try {
224
+ parsed = JSON.parse(rawItems);
225
+ }
226
+ catch {
227
+ // Single string item
228
+ parsed = [rawItems];
229
+ }
230
+ }
231
+ // Convert to TodoInput array
232
+ if (Array.isArray(parsed)) {
233
+ items = parsed.map(item => {
234
+ if (typeof item === 'string') {
235
+ return { content: item };
236
+ }
237
+ if (typeof item === 'object' && item !== null && 'content' in item) {
238
+ return {
239
+ content: item.content,
240
+ activeForm: item.activeForm
241
+ };
242
+ }
243
+ return { content: String(item) };
244
+ });
245
+ }
246
+ }
247
+ switch (action) {
248
+ case 'set': {
249
+ if (!items || items.length === 0) {
250
+ return { success: false, error: 'Items array is required for "set" action' };
251
+ }
252
+ const todos = manager.setAll(items);
253
+ const current = manager.getCurrentTask();
254
+ const currentLabel = current?.activeForm || current?.content;
255
+ return {
256
+ success: true,
257
+ data: {
258
+ message: `Created ${todos.length} tasks. Starting: "${currentLabel}"`,
259
+ todos: manager.getAll(),
260
+ current: currentLabel
261
+ }
262
+ };
263
+ }
264
+ case 'complete': {
265
+ const { completed, next } = manager.completeCurrentAndNext();
266
+ if (!completed && !next) {
267
+ return {
268
+ success: true,
269
+ data: {
270
+ message: 'No tasks to complete.',
271
+ todos: manager.getAll()
272
+ }
273
+ };
274
+ }
275
+ const progress = manager.getProgress();
276
+ let message = '';
277
+ if (completed) {
278
+ message = `Completed: "${completed.content}". `;
279
+ }
280
+ if (next) {
281
+ const nextLabel = next.activeForm || next.content;
282
+ message += `Next: "${nextLabel}". `;
283
+ }
284
+ else if (manager.isAllCompleted()) {
285
+ message += 'All tasks completed!';
286
+ }
287
+ message += `Progress: ${progress.completed}/${progress.total}`;
288
+ const nextLabel = next ? (next.activeForm || next.content) : undefined;
289
+ return {
290
+ success: true,
291
+ data: {
292
+ message,
293
+ todos: manager.getAll(),
294
+ current: nextLabel,
295
+ progress
296
+ }
297
+ };
298
+ }
299
+ case 'list': {
300
+ const todos = manager.getAll();
301
+ const current = manager.getCurrentTask();
302
+ const progress = manager.getProgress();
303
+ const currentLabel = current ? (current.activeForm || current.content) : undefined;
304
+ return {
305
+ success: true,
306
+ data: {
307
+ message: formatTodoList(todos),
308
+ todos,
309
+ current: currentLabel,
310
+ progress
311
+ }
312
+ };
313
+ }
314
+ default:
315
+ return { success: false, error: `Unknown action: ${action}` };
316
+ }
317
+ }
318
+ };
319
+ }
320
+ //# sourceMappingURL=todo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todo.js","sourceRoot":"","sources":["../src/todo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,257 @@
1
+ /**
2
+ * Hive Agent Framework - Type Definitions
3
+ */
4
+ export type MessageRole = 'user' | 'assistant';
5
+ export interface TextBlock {
6
+ type: 'text';
7
+ text: string;
8
+ }
9
+ export interface ThinkingBlock {
10
+ type: 'thinking';
11
+ thinking: string;
12
+ }
13
+ export interface ToolUseBlock {
14
+ type: 'tool_use';
15
+ id: string;
16
+ name: string;
17
+ input: Record<string, unknown>;
18
+ }
19
+ export interface ToolResultBlock {
20
+ type: 'tool_result';
21
+ tool_use_id: string;
22
+ content: string;
23
+ is_error?: boolean;
24
+ }
25
+ export type ContentBlock = TextBlock | ThinkingBlock | ToolUseBlock | ToolResultBlock;
26
+ export interface Message {
27
+ role: MessageRole;
28
+ content: string | ContentBlock[];
29
+ }
30
+ export interface JSONSchema {
31
+ type: 'object';
32
+ properties: Record<string, {
33
+ type: string;
34
+ description?: string;
35
+ enum?: string[];
36
+ items?: JSONSchema;
37
+ }>;
38
+ required?: string[];
39
+ additionalProperties?: boolean;
40
+ }
41
+ export interface ToolResult {
42
+ success: boolean;
43
+ data?: unknown;
44
+ error?: string;
45
+ }
46
+ export interface ToolContext {
47
+ remainingTokens: number;
48
+ conversationId?: string;
49
+ userId?: string;
50
+ metadata?: Record<string, unknown>;
51
+ }
52
+ export interface Tool {
53
+ name: string;
54
+ description: string;
55
+ parameters: JSONSchema;
56
+ execute: (params: Record<string, unknown>, context: ToolContext) => Promise<ToolResult>;
57
+ }
58
+ export interface ToolSchema {
59
+ name: string;
60
+ description: string;
61
+ input_schema: JSONSchema;
62
+ }
63
+ export interface ToolCallLog {
64
+ name: string;
65
+ input: Record<string, unknown>;
66
+ output: ToolResult;
67
+ durationMs: number;
68
+ }
69
+ export interface SubAgentConfig {
70
+ name: string;
71
+ description: string;
72
+ systemPrompt: string;
73
+ tools: Tool[];
74
+ /** Override model for this agent (e.g., 'gpt-4o', 'claude-3-haiku') */
75
+ model?: string;
76
+ /** Override LLM provider for this agent (use different provider than parent) */
77
+ llm?: LLMProvider;
78
+ /** Override max iterations for this agent */
79
+ maxIterations?: number;
80
+ }
81
+ export type StopReason = 'end_turn' | 'tool_use' | 'max_tokens';
82
+ export interface LLMResponse {
83
+ content: ContentBlock[];
84
+ stopReason: StopReason;
85
+ usage?: {
86
+ inputTokens: number;
87
+ outputTokens: number;
88
+ };
89
+ cacheUsage?: CacheUsage;
90
+ }
91
+ export interface CacheConfig {
92
+ enabled: boolean;
93
+ cacheSystemPrompt?: boolean;
94
+ cacheTools?: boolean;
95
+ cacheHistory?: boolean;
96
+ }
97
+ export interface CacheUsage {
98
+ cacheCreationInputTokens: number;
99
+ cacheReadInputTokens: number;
100
+ }
101
+ export interface LLMOptions {
102
+ thinkingMode?: 'none' | 'enabled';
103
+ thinkingBudget?: number;
104
+ model?: string;
105
+ cache?: CacheConfig;
106
+ }
107
+ export interface LLMProvider {
108
+ chat(systemPrompt: string, messages: Message[], tools: ToolSchema[], options?: LLMOptions): Promise<LLMResponse>;
109
+ }
110
+ export interface ProgressUpdate {
111
+ type: 'thinking' | 'tool_start' | 'tool_end' | 'sub_agent_start' | 'sub_agent_end' | 'status';
112
+ message: string;
113
+ details?: {
114
+ toolName?: string;
115
+ agentName?: string;
116
+ duration?: number;
117
+ success?: boolean;
118
+ };
119
+ }
120
+ export interface LogProvider {
121
+ debug(message: string, data?: unknown): void;
122
+ info(message: string, data?: unknown): void;
123
+ warn(message: string, data?: unknown): void;
124
+ error(message: string, data?: unknown): void;
125
+ onToolCall?(toolName: string, params: unknown): void;
126
+ onToolResult?(toolName: string, result: ToolResult, durationMs: number): void;
127
+ onIteration?(iteration: number, messageCount: number): void;
128
+ onComplete?(result: AgentResult): void;
129
+ /** Called with progress updates for real-time UI feedback */
130
+ onProgress?(update: ProgressUpdate): void;
131
+ }
132
+ export interface RepositoryProvider {
133
+ getHistory(conversationId: string): Promise<Message[]>;
134
+ saveHistory(conversationId: string, messages: Message[]): Promise<void>;
135
+ getState?(conversationId: string): Promise<Record<string, unknown> | null>;
136
+ saveState?(conversationId: string, state: Record<string, unknown>): Promise<void>;
137
+ getCached?(key: string): Promise<unknown | null>;
138
+ setCached?(key: string, value: unknown, ttlMs?: number): Promise<void>;
139
+ }
140
+ export type ContextStrategy = 'truncate_old' | 'summarize' | 'error';
141
+ export interface HiveConfig {
142
+ systemPrompt: string;
143
+ tools: Tool[];
144
+ agents?: SubAgentConfig[];
145
+ llm: LLMProvider;
146
+ logger?: LogProvider;
147
+ repository?: RepositoryProvider;
148
+ maxIterations?: number;
149
+ maxContextTokens?: number;
150
+ contextStrategy?: ContextStrategy;
151
+ thinkingMode?: 'none' | 'enabled';
152
+ thinkingBudget?: number;
153
+ review?: ReviewConfig;
154
+ /** Disable __ask_user__ tool (used for sub-agents that shouldn't pause for input) */
155
+ disableAskUser?: boolean;
156
+ }
157
+ export interface RunOptions {
158
+ conversationId?: string;
159
+ userId?: string;
160
+ metadata?: Record<string, unknown>;
161
+ history?: Message[];
162
+ /**
163
+ * AbortSignal for cancellation (e.g., from AbortController)
164
+ * When aborted, agent stops and returns partial results
165
+ */
166
+ signal?: AbortSignal;
167
+ /**
168
+ * Async function to check if agent should continue
169
+ * Called before each iteration and between tool calls
170
+ * Return false to stop execution
171
+ *
172
+ * Example (Firestore):
173
+ * ```typescript
174
+ * shouldContinue: async () => {
175
+ * const doc = await db.doc(`tasks/${taskId}`).get()
176
+ * return doc.data()?.status !== 'stopped'
177
+ * }
178
+ * ```
179
+ */
180
+ shouldContinue?: () => Promise<boolean>;
181
+ }
182
+ export interface PendingQuestion {
183
+ question: string;
184
+ options?: string[];
185
+ }
186
+ export type AgentStatus = 'complete' | 'needs_input' | 'interrupted';
187
+ export interface AgentResult {
188
+ response: string;
189
+ history: Message[];
190
+ toolCalls: ToolCallLog[];
191
+ thinking?: string[];
192
+ pendingQuestion?: PendingQuestion;
193
+ todos?: TodoItem[];
194
+ review?: ReviewResult;
195
+ status: AgentStatus;
196
+ /**
197
+ * Present when status is 'interrupted'
198
+ * Contains partial work that can be continued or discarded
199
+ */
200
+ interrupted?: {
201
+ /** Reason for interruption */
202
+ reason: 'aborted' | 'stopped' | 'max_iterations';
203
+ /** Number of iterations completed before interruption */
204
+ iterationsCompleted: number;
205
+ };
206
+ usage?: {
207
+ totalInputTokens: number;
208
+ totalOutputTokens: number;
209
+ cacheCreationInputTokens?: number;
210
+ cacheReadInputTokens?: number;
211
+ };
212
+ }
213
+ export type TodoStatus = 'pending' | 'in_progress' | 'completed';
214
+ export interface TodoItem {
215
+ id: string;
216
+ content: string;
217
+ /** Present continuous form shown when task is in_progress (e.g., "Running tests") */
218
+ activeForm?: string;
219
+ status: TodoStatus;
220
+ createdAt: number;
221
+ completedAt?: number;
222
+ }
223
+ export interface TodoList {
224
+ items: TodoItem[];
225
+ currentTaskId?: string;
226
+ }
227
+ export type ReviewSeverity = 'info' | 'warning' | 'error' | 'critical';
228
+ export interface ReviewIssue {
229
+ severity: ReviewSeverity;
230
+ message: string;
231
+ suggestion?: string;
232
+ location?: string;
233
+ }
234
+ export interface ReviewResult {
235
+ passed: boolean;
236
+ issues: ReviewIssue[];
237
+ summary: string;
238
+ reviewedAt: number;
239
+ }
240
+ export interface ReviewConfig {
241
+ enabled: boolean;
242
+ autoReview?: boolean;
243
+ requireApproval?: boolean;
244
+ categories?: string[];
245
+ }
246
+ export interface EnvironmentInfo {
247
+ workingDirectory?: string;
248
+ platform?: string;
249
+ date?: string;
250
+ customVars?: Record<string, string>;
251
+ }
252
+ export interface SystemPromptConfig {
253
+ basePrompt: string;
254
+ environment?: EnvironmentInfo;
255
+ reminders?: string[];
256
+ }
257
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Hive Agent Framework - Type Definitions
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@alexnetrebskii/hive-agent",
3
+ "version": "0.5.0",
4
+ "description": "Minimal TypeScript agent framework inspired by Claude Code architecture",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "types": "./dist/index.d.ts"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "keywords": [
18
+ "ai",
19
+ "agent",
20
+ "llm",
21
+ "claude",
22
+ "openai",
23
+ "tools",
24
+ "framework"
25
+ ],
26
+ "author": "",
27
+ "license": "MIT",
28
+ "engines": {
29
+ "node": ">=20.0.0"
30
+ },
31
+ "dependencies": {
32
+ "@anthropic-ai/sdk": "^0.71.0"
33
+ },
34
+ "devDependencies": {
35
+ "@types/node": "^20.0.0",
36
+ "typescript": "^5.7.0"
37
+ },
38
+ "scripts": {
39
+ "build": "tsc",
40
+ "dev": "tsc --watch",
41
+ "clean": "rm -rf dist"
42
+ }
43
+ }