export { shellExecTool } from './shell.js';
export { fileReadTool } from './file-read.js';
export { fileWriteTool } from './file-write.js';
export { fileEditTool } from './file-edit.js';
export { filePatchTool } from './file-patch.js';
export { fileListTool } from './file-list.js';
export { systemInfoTool } from './system-info.js';
export { webFetchTool } from './web-fetch.js';
export { createMediaSendTool } from './media-send.js';
export { createImageAnalyzeTool } from './image-analyze.js';
export { createAudioTranscribeTool } from './audio-transcribe.js';
export { createMemoryReadTool } from './memory-read.js';
export { createMemoryWriteTool } from './memory-write.js';
export { createMemorySearchTool } from './memory-search.js';
export { createWebSearchTool } from './web-search.js';
export type { WebSearchConfig } from './web-search.js';
export { createProcessTools, ProcessManager } from './process/index.js';
export type { ProcessManagerConfig } from './process/index.js';
export { BrowserManager, createBrowserTools } from './browser/index.js';
export type { BrowserManagerConfig } from './browser/index.js';
export { createSessionTools } from './sessions.js';
export { createAgentsListTool } from './agents-list.js';
export { createMessageSendTool } from './message-send.js';
export { createCronTools } from './cron.js';
export { createGmailTools } from './gmail.js';
export { createGcalTools } from './gcal.js';
export { createGdocsTools } from './gdocs.js';
export { createGdriveTools } from './gdrive.js';
export { createGtasksTools } from './gtasks.js';

import type { Tool } from '../types.js';
import type { MemoryStore } from '../../memory/store.js';
import type { HybridSearch } from '../../memory/hybrid-search.js';
import type { WebSearchConfig } from './web-search.js';
import { shellExecTool } from './shell.js';
import { fileReadTool } from './file-read.js';
import { fileWriteTool } from './file-write.js';
import { fileEditTool } from './file-edit.js';
import { filePatchTool } from './file-patch.js';
import { fileListTool } from './file-list.js';
import { systemInfoTool } from './system-info.js';
import { webFetchTool } from './web-fetch.js';
import { createMediaSendTool } from './media-send.js';
import { createImageAnalyzeTool } from './image-analyze.js';
import { createMemoryReadTool } from './memory-read.js';
import { createMemoryWriteTool } from './memory-write.js';
import { createMemorySearchTool } from './memory-search.js';
import { createWebSearchTool } from './web-search.js';

/** Static builtin tools that don't require runtime dependencies. */
export const allBuiltinTools: Tool[] = [
  shellExecTool,
  fileReadTool,
  fileWriteTool,
  fileEditTool,
  filePatchTool,
  fileListTool,
  systemInfoTool,
  webFetchTool,
];

/** Create memory tools that require a MemoryStore instance. */
export function createMemoryTools(store: MemoryStore, hybridSearch?: HybridSearch): Tool[] {
  return [
    createMemoryReadTool(store),
    createMemoryWriteTool(store),
    createMemorySearchTool(store, hybridSearch),
  ];
}

/** Create the web search tool with provider config. */
export function createWebSearchTools(config: WebSearchConfig): Tool[] {
  return [createWebSearchTool(config)];
}
