c9ai
Version:
Universal AI assistant with vibe-based workflows, hybrid cloud+local AI, and comprehensive tool integration
308 lines • 14.1 kB
JSON
{
"tools": {
"jit": {
"name": "jit",
"description": "Execute Just-In-Time applications for calculations, data analysis, file processing, system info, and quiz generation",
"module": "./tools/jit-executor.js",
"parameters": {
"type": {
"type": "string",
"description": "JIT app type: calc, analyze, file, system",
"enum": ["calc", "calculator", "analyze", "data", "file", "process", "system", "info", "quiz", "test", "exam", "rfq", "rfq-analysis", "proposal"],
"required": true
},
"expression": {
"type": "string",
"description": "Math expression (for calc type)"
},
"file": {
"type": "string",
"description": "File to analyze (for analyze type)"
},
"operation": {
"type": "string",
"description": "File operation: count-lines, uppercase, lowercase, extract-emails, word-frequency"
},
"input": {
"type": "string",
"description": "Input file path"
},
"output": {
"type": "string",
"description": "Output file path"
},
"topic": {
"type": "string",
"description": "Quiz topic (for quiz type)"
},
"difficulty": {
"type": "string",
"description": "Quiz difficulty: beginner, intermediate, advanced (for quiz type)",
"enum": ["beginner", "intermediate", "advanced"]
},
"questions": {
"type": "integer",
"description": "Number of questions (for quiz type)"
},
"rfq_text": {
"type": "string",
"description": "RFQ document text (for rfq type)"
},
"text": {
"type": "string",
"description": "Document text to analyze (for rfq type)"
},
"hourly_rate": {
"type": "number",
"description": "Hourly rate for cost calculations (for rfq type)"
},
"margin_target": {
"type": "number",
"description": "Target profit margin percentage (for rfq type)"
},
"file_path": {
"type": "string",
"description": "Path to RFQ document file (for rfq type)"
}
}
},
"list_files": {
"name": "list_files",
"description": "List files and directories in the current or specified directory",
"command": "ls -la",
"windows_command": "dir",
"parameters": {
"path": {
"type": "string",
"description": "Directory path to list (optional, defaults to current directory)",
"required": false
}
}
},
"check_disk_usage": {
"name": "check_disk_usage",
"description": "Check disk space usage on all drives",
"command": "df -h",
"windows_command": "wmic logicaldisk get size,freespace,caption",
"parameters": {}
},
"show_processes": {
"name": "show_processes",
"description": "Show running processes",
"command": "ps aux | head -20",
"windows_command": "tasklist",
"parameters": {}
},
"github_issues": {
"name": "github_issues",
"description": "List GitHub issues for a repository",
"command": "gh issue list",
"windows_command": "gh issue list",
"parameters": {
"repo": {
"type": "string",
"description": "Repository name (e.g., owner/repo)",
"required": false,
"default": "hebbarp/todo-management"
}
}
},
"execute_github_issues": {
"name": "execute_github_issues",
"description": "Read GitHub issues and execute them as tasks",
"command": "gh issue list --json number,title,body,labels",
"windows_command": "gh issue list --json number,title,body,labels",
"parameters": {
"repo": {
"type": "string",
"description": "Repository name (e.g., owner/repo)",
"required": false,
"default": "hebbarp/todo-management"
}
}
},
"git_status": {
"name": "git_status",
"description": "Show git repository status",
"command": "git status",
"windows_command": "git status",
"parameters": {}
},
"search_web": {
"name": "search_web",
"description": "Open a web search for the given query",
"command": "open 'https://www.google.com/search?q={{query}}'",
"windows_command": "start \"\" \"https://www.google.com/search?q={{query}}\"",
"linux_command": "xdg-open 'https://www.google.com/search?q={{query}}'",
"parameters": {
"query": {
"type": "string",
"description": "Search query",
"required": true
}
}
},
"open_application": {
"name": "open_application",
"description": "Open an application or file",
"command": "open {{target}}",
"windows_command": "start \"\" \"{{target}}\"",
"linux_command": "xdg-open {{target}}",
"parameters": {
"target": {
"type": "string",
"description": "Application name or file path to open",
"required": true
}
}
},
"create_content": {
"name": "create_content",
"description": "Create written content like posts, articles, or documents",
"command": "echo 'Content creation'",
"windows_command": "echo Content creation",
"parameters": {
"type": {
"type": "string",
"description": "Type of content (post, article, document, etc.)",
"required": true
},
"topic": {
"type": "string",
"description": "Topic or subject for the content",
"required": true
},
"filename": {
"type": "string",
"description": "Optional filename to save content",
"required": false
}
}
},
"compile_pdf_pandoc": {
"name": "compile_pdf_pandoc",
"description": "Compile the file using pandoc",
"command": "pandoc {{target}}",
"parameters": {
"-S": {
"type": "string",
"description": "system",
"required": false
}
}
},
"check_calendar": {
"name": "check_calendar",
"description": "Check calendar events for today using macOS Calendar",
"command": "osascript -e 'tell application \"Calendar\" to get summary of events of calendar 1 whose start date is greater than (current date) and start date is less than ((current date) + 1 * days)'",
"windows_command": "powershell -Command \"Get-WinEvent -FilterHashtable @{LogName='Application'; ID=1000} -MaxEvents 5 | Select-Object TimeCreated, Message\"",
"linux_command": "if [ -f ~/.local/share/evolution/calendar/system/calendar.ics ]; then grep -A5 $(date +%Y%m%d) ~/.local/share/evolution/calendar/system/calendar.ics; else echo 'No calendar file found. Please export calendar or use web calendar.'; fi",
"parameters": {
"date": {
"type": "string",
"description": "Date to check (YYYY-MM-DD format, defaults to today)",
"required": false
}
}
},
"project_dashboard": {
"name": "project_dashboard",
"description": "Generate project status dashboard from GitHub issues and local todos",
"command": "echo '# Project Dashboard - '$(date) > dashboard.md && echo '' >> dashboard.md && echo '## GitHub Issues' >> dashboard.md && gh issue list --limit 10 --json number,title,state,assignees --template '{{range .}}* [{{.state}}] #{{.number}}: {{.title}}{{if .assignees}} ({{range .assignees}}@{{.login}} {{end}}){{end}}{{\"\\n\"}}{{end}}' >> dashboard.md 2>/dev/null || echo '* GitHub CLI not configured or no issues found' >> dashboard.md && echo '' >> dashboard.md && echo '## Local Todos' >> dashboard.md && if [ -f todo.md ]; then cat todo.md >> dashboard.md; else echo '* No local todo.md found' >> dashboard.md; fi && echo '' >> dashboard.md && echo '## Git Status' >> dashboard.md && git status --porcelain | head -10 >> dashboard.md 2>/dev/null || echo '* Not a git repository' >> dashboard.md && cat dashboard.md",
"windows_command": "echo # Project Dashboard - %date% > dashboard.md && echo. >> dashboard.md && echo ## GitHub Issues >> dashboard.md && gh issue list --limit 10 --json number,title,state >> dashboard.md 2>nul || echo * GitHub CLI not configured >> dashboard.md && echo. >> dashboard.md && echo ## Local Todos >> dashboard.md && if exist todo.md (type todo.md >> dashboard.md) else (echo * No local todo.md found >> dashboard.md) && echo. >> dashboard.md && echo ## Git Status >> dashboard.md && git status --porcelain >> dashboard.md 2>nul || echo * Not a git repository >> dashboard.md && type dashboard.md",
"parameters": {
"format": {
"type": "string",
"description": "Output format (markdown, json, text)",
"required": false,
"default": "markdown"
}
}
},
"standup_notes": {
"name": "standup_notes",
"description": "Generate daily standup notes from git commits and todos",
"command": "echo '# Daily Standup Notes - '$(date +%Y-%m-%d) > standup.md && echo '' >> standup.md && echo '## What I did yesterday:' >> standup.md && git log --oneline --since='yesterday' --author=\"$(git config user.name)\" | head -5 | sed 's/^/* /' >> standup.md 2>/dev/null || echo '* No recent commits found' >> standup.md && echo '' >> standup.md && echo '## What I plan to do today:' >> standup.md && if [ -f todo.md ]; then grep '\\- \\[ \\]' todo.md | head -3 | sed 's/^/* /' >> standup.md; else echo '* Check todo list' >> standup.md; fi && echo '' >> standup.md && echo '## Blockers:' >> standup.md && echo '* None at the moment' >> standup.md && cat standup.md",
"windows_command": "echo # Daily Standup Notes - %date% > standup.md && echo. >> standup.md && echo ## What I did yesterday: >> standup.md && git log --oneline --since=\"yesterday\" --author=\"%USERNAME%\" >> standup.md 2>nul || echo * No recent commits found >> standup.md && echo. >> standup.md && echo ## What I plan to do today: >> standup.md && if exist todo.md (findstr \"- \\[ \\]\" todo.md >> standup.md) else (echo * Check todo list >> standup.md) && echo. >> standup.md && echo ## Blockers: >> standup.md && echo * None at the moment >> standup.md && type standup.md",
"parameters": {}
},
"convert_video": {
"name": "convert_video",
"description": "Convert video files between formats using ffmpeg",
"command": "ffmpeg -i {{input}} {{output}}",
"windows_command": "ffmpeg -i {{input}} {{output}}",
"parameters": {
"input": {
"type": "string",
"description": "Input video file path",
"required": true
},
"output": {
"type": "string",
"description": "Output video file path with desired format",
"required": true
}
}
},
"extract_audio": {
"name": "extract_audio",
"description": "Extract audio from video files using ffmpeg",
"command": "ffmpeg -i {{input}} -vn -acodec copy {{output}}",
"windows_command": "ffmpeg -i {{input}} -vn -acodec copy {{output}}",
"parameters": {
"input": {
"type": "string",
"description": "Input video file path",
"required": true
},
"output": {
"type": "string",
"description": "Output audio file path (e.g., audio.mp3)",
"required": true
}
}
},
"resize_image": {
"name": "resize_image",
"description": "Resize images using ImageMagick",
"command": "magick {{input}} -resize {{size}} {{output}}",
"windows_command": "magick {{input}} -resize {{size}} {{output}}",
"parameters": {
"input": {
"type": "string",
"description": "Input image file path",
"required": true
},
"output": {
"type": "string",
"description": "Output image file path",
"required": true
},
"size": {
"type": "string",
"description": "New size (e.g., 800x600, 50%, 1920x1080)",
"required": true
}
}
},
"convert_image": {
"name": "convert_image",
"description": "Convert images between formats using ImageMagick",
"command": "magick {{input}} {{output}}",
"windows_command": "magick {{input}} {{output}}",
"parameters": {
"input": {
"type": "string",
"description": "Input image file path",
"required": true
},
"output": {
"type": "string",
"description": "Output image file path with desired format",
"required": true
}
}
}
},
"tool_selection_prompt": "You are a smart tool selector. Match user requests to the best available tool.\\n\\nAvailable tools:\\n{tools}\\n\\nUser request: \\\"{user_input}\\\"\\n\\nAnalyze the request and select the most appropriate tool. Examples:\\n- \\\"show disk usage\\\" → check_disk_usage\\n- \\\"list files\\\" → list_files\\n- \\\"show processes\\\" → show_processes\\n- \\\"git status\\\" → git_status\\n- \\\"search for X\\\" → search_web\\n- \\\"open X\\\" → open_application\\n- \\\"check my calendar\\\" → check_calendar\\n- \\\"show project dashboard\\\" → project_dashboard\\n- \\\"generate standup notes\\\" → standup_notes\\n\\nRespond ONLY in this JSON format:\\n{\\n \\\"tool\\\": \\\"exact_tool_name\\\",\\n \\\"parameters\\\": {},\\n \\\"reasoning\\\": \\\"brief explanation\\\"\\n}"
}